私は即時呼び出し関数式(IIFE)の動作を研究していますが、その間に次のような状況に遭遇しました。
(function () {
document.write("bar");
})
(function () {
document.write("foo");
}());
1つ目は、関数式を呼び出さずに内部に持つ単なるグループ化演算子だと思いました。2つ目は、関数式を使用したグループ化演算子ですが、現在はその関数を呼び出しています。
私が奇妙だと思うのは、両方が呼び出されるということです、それはなぜですか?
(function () {
document.write("bar");
})
var x = 1;
(function () {
document.write("foo");
}());
間に変数宣言を挿入して2つを壊すと、fooと書くだけです。これは私が期待したことです。