2

我想清楚地了解以下两种模式之间的区别。实际上,第二个允许模仿公共和私有方法,但是还有其他区别吗?

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();
4

1 回答 1

3

第二个基本上和第一个一样,除了它还提供了一个围绕对象的闭包,其中可以保留“私有”变量。

具体来说,如果你设置一个像第二个这样的例子,它没有局部变量,也没有匿名函数的参数,那就像根本没有匿名函数一样。

于 2013-08-07T20:05:25.753 回答