Javascript IIFE匿名功能

时间:2014-12-20 17:41:04

标签: javascript iife

我一直在努力了解IIFE如何在匿名功能方面发挥作用。我理解它们用于避免全局变量冲突,并且它们创建了自己的局部范围。

我不清楚当调用这样的匿名函数时会发生什么。

(function () {
  var myVar = 'foo';
  }
)()

如果立即调用它并且它在全局范围内不可用,那么它在哪里可用?我如何访问myVar?

1 个答案:

答案 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);