为什么自调用函数抛出错误而不包含括号

时间:2018-03-24 08:00:55

标签: javascript self-executing-function

我有两个代码段。第一个工作正常,但第二个是错误。

var b = function abc() {
    alert(a);
}()

我收到了提醒信息。

function abc() {
    alert(a);
}()

这里我收到错误。“Uncaught SyntaxError:Unexpected token)” 我正在使用Chrome浏览器。

以下是有效的。

(function abc() {
    alert(a);
})()

括号的目的是什么?

1 个答案:

答案 0 :(得分:-1)

除其他外,这是为了防止吊装以及污染全球范围。它也是为了明确地告诉解析器期望函数表达式,而不是声明。

Wikipedia文章对此事非常有用。