在JavaScript的模块模式中,“立即执行函数表达式”(也称为自执行匿名函数)被用作返回对象的自执行函数。如何隐藏私有变量并仅公开返回的对象?为什么普通的JavaScript函数不能做到这一点?因此,在下面的小型模块中,如果没有包含的()(),我们为什么无法实现相同的封装概念?
var Module = (function () {
var privateVariable = "foo",
privateMethod = function () {
alert('private method');
};
return {
PublicMethod: function () {
alert(privateVariable);
privateMethod();
}
};
})();