经常看到JavaScript代码中定义全局对象作为命名空间。
var MyNS = {a: function() {}, ... };
但有时候我看到人们省略了“var”关键字,比如:
MyNS = {a: function() {}, ...};
我相信在web浏览器中,如果你没有使用var关键字定义一个变量,它会被放置在window对象中,这个对象充当全局命名空间。既然省略"var"可以节省一些文本字节,那么有没有必要特别针对这个目的使用这个关键字呢?
window.MyNS={};
声明全局变量,并且具有与var MyNS={};
相同的含义呢? - c4ilwindow.MyNS = {};
会在全局对象上创建一个属性,而var MyNS = {};
将声明一个变量,并且作为全局对象,是全局执行上下文的变量对象,因此也会创建一个全局属性,我建议您查看我在答案中链接的文章。 - Christian C. Salvadó