自调用函数的可选语法

Alternative syntax for self-invoking function?

本文关键字:语法 调用 函数      更新时间:2023-09-26

在为一些同事编写javascript课程时,我意外地发现了一种用于自调用函数的替代语法。有人知道这件事吗?有具体的细节吗?我找不到有关它的文档。

代码:经典语法

    (function(){
      console.log("I'm self-invoked!");
    })();

替代语法

    (function(){
      console.log("Me too!");
    }());

谢谢你的提示!

两者含义相同。

在两者中,起始处的(表示表达式的开始。这表示我们要调用的函数表达式的开始。最后我们调用它。差异是微妙的,应该根本不重要,让我们来探索一下:

(function(){
  console.log("I'm self-invoked!");
})();

这里,(是告诉编译器它是表达式的开始,编译器评估表达式(在这种情况下是函数表达式),然后调用它(在表达式之外)。

(function(){
  console.log("Me too!");
}());

这里-调用模式(())是该表达式的部分