对象乱丢垃圾与模块模式

Object litterals vs Module pattern

本文关键字:模块 模式 对象      更新时间:2023-09-26

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

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

第二个与第一个基本相同,只是它还提供了一个可以保存"私有"变量的对象的闭包。

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