遇到一个写法:
var funcName = function(){...}();
var singleton = function(){ var privateVariable =10; function privateFunction(){ return privateVariable; } return { publicProperty: true, publicMethod: function(){ privateVariable++; return privateFunction(); } }; }();
运行结果:
查阅了一下资料,这属于模块模式。如果单独写成:function(){...}(); 则会报错,具体原因如下:
立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( )) 有什么区别?
写成这样,效果也是一样的:
var funcName = (function(){...})();
深入理解模块模式: