或许有点愚蠢的问题.
但是我想理解为什么自执行函数的语法和它所具有的回调与所有其他JS语法的不同之处.
(function () {
})()
我只需要理解为什么它有效地封装它()我不会猜到它是有效的,然后是额外的()之后的回调,(它只是直接位于它之后,我也没有预计有效.
有人能够向我解释这个吗?
函数(…){…}部分是
函数表达式,即表示
函数的表达式.在这种情况下,必须用括号括起来的唯一原因是,如果关键字
函数是语句中的第一个东西,那么该语句被假定为
函数语句,即
函数声明. (实际上,它不一定必须用括号括起来;它也可以用它作为前缀,或者通常在
函数之前放置任何类型的令牌来阻止
函数语句解释.)
函数表达式后面的()部分与调用函数的normal()部分相同.这个:
(function (...) {...})(...);
是(除了临时变量)与此相同:
var f = function (...) {...};
f();
这相当于:
function f(...) {...};
f();