对象文字与模块模式

时间:2013-08-07 20:04:13

标签: javascript class module

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

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

1 个答案:

答案 0 :(得分:3)

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

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