在 JavaScript 的模块模式中,“立即调用函数表达式”(也称为自执行匿名函数)用作返回对象的自执行函数。自执行函数如何隐藏私有变量而只公开返回的对象。为什么普通的 JavaScript 函数不会发生这种情况?那么在下面的迷你模块中,为什么我们不能实现相同的封装概念,而没有封闭的()()?
var Module = (function () {
var privateVariable = "foo",
privateMethod = function () {
alert('private method');
};
return {
PublicMethod: function () {
alert(privateVariable);
privateMethod();
}
};
})();