我的js这样做:
var MyClass ={
a: 1,
b: 2,
init: function(message){ console.log("calling c to say "+message);};
};
MyClass.init("hello");
//以上所有代码都在js文件中
我一直看到IIFE模式,但我担心与上面相比,我看不出它带来了什么好处。 我有一个MyClass模块,能够调用方法。使用这种模式有不利之处吗?
答案 0 :(得分:1)
IIFE用于创建新的函数范围,以避免将变量泄漏到全局范围中:
(function() {
var x = 1;
console.log(x); // 1
})();
console.log(x); // undefined
这与调用存储在对象中的函数基本无关,如示例所示。