何时使用自动函数执行

When to use automatic function execution

本文关键字:函数 执行 何时使      更新时间:2023-09-26

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

var f = function() {
  // function body code
  // ...
  // ...
}();

我想了解的是它的用法。

  1. 在哪种情况下,我们应该更喜欢使用上述语法?

  2. 使用上述语法我们有什么优势/好处?

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

您可以使用它来构建singleton pattern。单例模式的用法之一是修改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>