我想清楚地了解这两种模式之间的区别。事实上,第二个允许模仿公共和私人方法,但还有其他区别吗?
var myModule = {
myProperty: "someValue",
...
myMethod: function () {
console.log( "Anything" );
}
};
myModule.myMethod();
和此:
var myModule = (function(){
var myProperty= "someValue";
...
return {
myMethod: function(){
console.log('something');
}
}
})();
myModule.myMethod();
答案 0 :(得分:3)
第二个基本上就像第一个一样,除了它还提供围绕对象的闭包,其中可以保留“私有”变量。
具体来说,如果你设置一个像第二个这样的例子,它没有局部变量,也没有匿名函数的参数,那就完全没有匿名函数了。