我正在研究立即调用函数表达式 (IIFE) 的行为,在此过程中我遇到了以下情况。
(function () {
document.write("bar");
})
(function () {
document.write("foo");
}());
我认为第一个只是一个分组运算符,里面有一个函数表达式,没有调用它。第二个是分组运算符以及函数表达式,但现在调用该函数。
我觉得奇怪的是两者都被调用了,这是为什么呢?
(function () {
document.write("bar");
})
var x = 1;
(function () {
document.write("foo");
}());
当我通过在两者之间插入一个变量声明来打破这两者时,它只是写了 foo. 这是我所期望的。