【发布时间】:2012-07-16 09:04:03
【问题描述】:
实际上,以下两种模式之间的区别是什么?
一个
mySpace = mySpace || {}
mySpace.isObsolete = function() {};
mySpace.hipsterYear = 2006;
用法:
var iable = mySpace.isObsolete();
var year = mySpace.hipsterYear;
B(即模块模式)
mySpace = (function(){
var obj = {};
var someVar = 2012;
obj.hipsterYear = 2006;
obj.isObsolete: function() {};
return obj;
}());
用法:
var iable = mySpace.isObsolete();
var year = mySpace.hipsterYear;
在 B 中,匿名函数创建了一个范围,其中 someVar 不能从外部访问。我想这样的构造在 A 中是不可能的? 因此,A 和 B 在创建范围方面有所不同。
在命名空间方面有什么区别? A 和 B 是等价的吗?
【问题讨论】:
标签: javascript namespaces scope javascript-namespaces