何时使用自动功能执行

时间:2016-03-04 07:35:34

标签: javascript anonymous-function

对于下面的代码,我知道它是一个自动函数执行代码(我看到它在JQuery中使用)。

var f = function() {

  // function body code
  // ...
  // ...

}();

我想了解的是它的用法。

  1. 在哪种情况下我们应该优先使用上面的语法?

  2. 使用上述语法可以获得哪些优势/好处?

1 个答案:

答案 0 :(得分:2)

立即可调用的函数表达式 ”是它的正确名称。它的用法很多,基本上它会紧紧包裹scope并且不允许访问其variable到外部范围,除非我们故意这样做。

您可以使用它来构建singleton pattern。 Singleton模式的一个用法是修改data encapsulation。与settersgetters一样。

可能的使用情况:

<script src="someLibrary.js"></script> //And it uses a global variable called x
<script>
  var x = 10; //Now at this situation, 
              //the x belongs to someLibrary will be overridden here.
</script>

所以为了避免这种冲突,我们可以使用IIFE,

<script>
  (function(){
    var x = 10; 
    .
    .
    //Other codes goes here.
  })();
</script>