首页 > 代码库 > *防止JS全局污染

*防止JS全局污染

javaScript 可以随意定义保存所有应用资源的全局变量。但全局变量可以削弱程序灵活性,增大了模块之间的耦合性。
在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题,以下是两种解决办法

一.定义全局变量命名空间
只创建一个全局变量,并定义该变量为当前应用容器,把其他全局变量追加在该命名空间下

var person1={
    name:‘jacksplwxy‘,
    language:‘中文‘,
    intro:function(){
        console.log(‘我的名字是:‘+this.name);
    },
    speak:function(){
        console.log(‘我能说:‘+this.language);
    },
    init:function(){
        this.intro();
        this.speak();
    }
};
person1.init();

更多实例可查看这里

 

二 . 利用匿名函数将脚本包裹起来

var person2=(function(){
    var name=‘jacksplwxy‘;
    var language=‘中文‘;
    var intro=function(){
        console.log(‘我的名字是:‘+name);
    }
    var speak=function(){
        console.log(‘我能说:‘+language);
    }
    return function(){
        intro();
        speak();
    }
})();
person2();

或者

var person3=(function(){
    var name=‘jacksplwxy‘;
    var language=‘中文‘;
    var intro=function(){
        console.log(‘我的名字是:‘+name);
    }
    var speak=function(){
        console.log(‘我能说:‘+language);
    }
    return {
        init:function(){
            intro();
            speak();
        }
    }
})();
person3.init();

 

*防止JS全局污染