为什么需要将函数声明包装在括号中以立即调用?我很好奇解释器在括在括号中时如何读取立即调用的函数。
即
我为什么要这样做......
(function() {
// Logic
})();
而不是......
function() {
// Logic
}();
答案 0 :(得分:6)
当一个函数包含在括号中时,它被解析为一个表达式 - 一个函数表达式。否则没有它们会被解析为函数声明。函数声明需要一个它看到你没有给出的名称,这反过来会导致语法错误。此外,您不能将()
内联应用于函数声明以便调用它。空括号是语法错误,但非空括号是一个表达式,它将与函数分开计算。