*防止JS全局污染

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*防止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全局污染的主要内容,如果未能解决你的问题,请参考以下文章

[转] 防止js全局变量污染方法总结

javascript防止变量全局污染

JS函数的应用 --- 立即执行函数全局污染闭包沙箱递归

防止全球范围的污染

自调函数的写法:

JS:React 和全局命名空间污染