JavaScript立即函数调用 - 为什么函数周围需要括号?

时间:2013-02-18 00:38:26

标签: javascript

为什么需要将函数声明包装在括号中以立即调用?我很好奇解释器在括在括号中时如何读取立即调用的函数。

我为什么要这样做......

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

而不是......

function() { 
   // Logic 
 }();

1 个答案:

答案 0 :(得分:6)

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