我一直在努力了解IIFE如何在匿名功能方面发挥作用。我理解它们用于避免全局变量冲突,并且它们创建了自己的局部范围。
我不清楚当调用这样的匿名函数时会发生什么。
(function () {
var myVar = 'foo';
}
)()
如果立即调用它并且它在全局范围内不可用,那么它在哪里可用?我如何访问myVar?
答案 0 :(得分:0)
这种表示法称为模块模式
var myModule = function () {
var privateVar = "foo";
function privateMethod() {
return "bar";
}
return {
publicMethod : function(){
return 'foo';
}
}
}
为了使该模块与全局范围完全隔离,我们可以在IIFE中关闭它
(function (setUp) {
var privateVar = setUp;
function privateMethod() {
return "bar";
}
return {
publicMethod : function(){
return 'foo';
}
}
})(window.setUp);