私は少し混乱しています。
どこを見ても、グローバルな名前空間の汚染を避けるために、スコーピングの理由から自己呼び出し関数を使用する必要があると人々は言います。
ただし、この点では、次の例のように、自己呼び出し関数は通常の関数と同じように動作するように見えます。
function xx(){
var x="variable";
//logs into console
console.log(x);
}
xx();
//logs undefined
console.log(x);
したがって、通常の関数と自己呼び出しの本当の違いは「自己呼び出し」の部分だけです。つまり、宣言後に関数を手動で実行する必要はありませんか?