0

为什么函数声明需要用括号括起来才能立即调用?我很好奇解释器如何在括号中读取立即调用的函数。

IE

为什么我必须这样做...

(function() { 
   // Logic 
 })();

而不是这个...

function() { 
   // Logic 
 }();
4

1 回答 1

6

当一个函数被括在括号中时,它被解析为一个表达式——一个函数表达式。否则,如果没有它们,它将被解析为函数声明。函数声明需要一个它认为您没有给它的名称,这反过来会导致语法错误。此外,您不能将()内联应用于函数声明以调用它。空括号是语法错误,但非空括号是一个表达式,它将与函数分开计算。

于 2013-02-18T00:39:53.703 回答