全局变量(可维护性)A.
定义一个全局变量的命名空间
为了避免全局变量的污染,尽可能创建一个全局变量。让其他对象和函数存在其中。
var myInfo={
name:'chengxi',
like:'football',
likeDo:function(){
alert(this.like);
}
}
用上面的方式代替下面的方式 name与likeDo相当于两个全局变量
var name='chengxi';
function likeDo(){
alert(name)
}
如果有更多的方法和功能也可以一并加入进去,而且系统化命名
var hengYue={};
//为util创建命名空间proJs
hengYue.proJs={};
//将用到的对象添加上去
hengYue.proJs.eventUtil={
Dom:'处理dom的方法',
event:'与事件交互的方法'
};
//为util创建命名空间proAjax
hengYue.proAjax={};
//将用到的对象添加上去
hengYue.proAjax.eventUtil={
Dom:'处理dom的方法',
event:'与事件交互的方法'
};
全局变量(可维护性)B.
利用匿名函数
(function(){
var exp = {};
var name = 'jack';
exp.method = function(){
return name;
}
window.ex = exp;
})()
全局变量(可维护性)C.
(function(obj){
var count = {};
var interim;
count.name = 'jack';
count.method = function(){
console.log('内部方法');
}
//把count对象挂到obj下
obj.count = count
})(window)
//如果在这里调用window.name是可以获取到jack的值。
//下面window.name 是获取不到jack的值
(function(){
var count = {};
var interim;
count.name = 'jack';
count.method = function(){
console.log('内部方法');
}
})()
全局变量(可维护性)D.
var NameSpace = window.NameSpace || {};
NameSpace.Hello = new function() {
var self = this;
var name = 'world';
self.sayHello = function(_name) {
return 'Hello ' + (_name || name);
};
};