避免全局变量污染的解决办法

全局变量(可维护性)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);
  };
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值