7

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

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 都是全局变量,因此两种约定都可以达到相同的结果,但哪个更好?

4

1 回答 1

3

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

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

于 2013-07-19T15:34:36.717 回答