解释JavaScript模块
这种方式的区别是什么:解释JavaScript模块,javascript,Javascript,这种方式的区别是什么: var MyNamespace = window.MyNamespace || {}; MyNamespace.Helper = function() { var _getValue = function() { var value = 5; return value; }; return { getValue: _getValue }; }(); va
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;
};
这样:
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;
};
有两个非常显著的区别:
MyNamespace.Helper
将是undefined
。尝试对其使用getValue
将失败。这要感谢自动插入分号并添加代码>在返回后
。不要将换行符放在return
及其返回的内容之后
MyNamespace.Helper.getValue
将得到值5
,而在第二个调用它将得到未定义的,因为您的匿名包装器\u getValue
不会返回任何内容
有两个非常显著的区别:
MyNamespace.Helper
将是undefined
。尝试对其使用getValue
将失败。这要感谢自动插入分号并添加代码>在返回后
。不要将换行符放在return
及其返回的内容之后
MyNamespace.Helper.getValue
将得到值5
,而在第二个调用它将得到未定义的,因为您的匿名包装器\u getValue
不会返回任何内容
第二个
getValue
不会返回任何内容。在JavaScript中使用模块模式正确吗?我想第二个版本是完全错误的..第二个部分可以被实例化如下:MyNamespace.SomethingElse=newmynamespace.Helper();如果是,有什么好处呢?第二个getValue
不会返回任何内容。这是在JavaScript中使用模块模式的正确方法吗?我想第二个版本是完全错误的..第二个部分可以被实例化如下:MyNamespace.SomethingElse=newmynamespace.Helper();如果是,会有什么好处?