这种方式有什么区别:
var MyNamespace = window.MyNamespace || {};
MyNamespace.Helper = function()
{
var _getValue = function()
{
var value = 5;
return value;
};
return
{
getValue: _getValue
};
}();
这样:
var MyNamespace = window.MyNamespace || {};
MyNamespace.Helper = function()
{
function _getValue()
{
var value = 5;
return value;
};
var publicMethod =
{
getValue: function() { _getValue(); }
};
return publicMethod;
};
答案 0 :(得分:5)
有两个非常显着的差异:
第一个版本不会返回对象,因此MyNamespace.Helper
将为undefined
。尝试在其上使用getValue
将失败。这要归功于自动分号插入在;
之后添加return
。不要在return
之后添加换行符及其返回的内容。
假设你修复了它,那么在第一个上调用MyNamespace.Helper.getValue
将为您提供值5
,而在第二个上调用它将为您提供undefined
,因为_getValue
周围的匿名包装器不会返回任何内容。