开发者社区> 问答> 正文

有关js全局变量污染的问题

function() {

window.thin = {
    define: function(name, dependencies, factory) {
        //register a module
    }
};

})();
上面的这一段代码,出处原文的作者是这么描述的:“我们把它挂在window上作为属性,然后再用一个function隔离出来,要不然,别人也定义一个同名的,就把我们覆盖掉了。”

但是我无法理解function是怎么隔离这个全局变量的,因为我在上面那段代码后在写

window.thin=new Date();
然后访问window.thin时,window.thin已经被覆盖了。

展开
收起
a123456678 2016-07-15 16:18:29 2202 0
1 条回答
写回答
取消 提交回答
  • 作者的意思是,要是我定义一个define函数,别人也定义一个define函数,我的define函数就被覆盖了。而不是指暴露给你的thin属性。不要说这个,就是jquery,你也可以通过window.jQuery = null来覆盖。只暴露一个thin变量,会被覆盖的几率比较小,而不是没有。如果你恶意覆盖,那是谁也阻挡不了的。

    2019-07-17 19:57:13
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载