Javascript命名空间约定

时间:2013-07-19 15:30:51

标签: javascript namespaces

我不确定使用哪个更好的命名空间约定。

var App = {}; // global variable, the root of our namespace
(function() {

   App.something = function() {

   }

})();

(function() {

   window.App = {}; //global variable, the root of our namespace

   App.something = function() {

   }

})();

window.App和var App都是全局变量,所以这两个约定都能达到相同的结果,但哪个更好?

1 个答案:

答案 0 :(得分:3)

唯一的区别是,在第一个版本中,App无法从window中删除,尽管它可以作为全局对象的属性进行访问。在第二种情况下,delete window.App有效。另请注意,您应该将命名空间附加到window,而不是Window,因为JavaScript区分大小写,而Window是构造函数。

除此之外,两者基本相同,没有“更好”。