Javascript の自己実行機能は、コンパイルされたプログラムのように機能しますか。つまり、自己実行関数内の名前付き匿名関数の後にいくつかの関数を宣言し、名前付き匿名関数が実行時に他の関数を見つけるようにすることはできますか? つまり、なぜ次のように動作するのでしょうか?
名前付き匿名関数は実行時にのみ作成されるため、おそらく自己実行関数がコードを「コンパイル」して、名前付き匿名関数を呼び出し元の関数で使用できるようにすることはできないと思いました!!
(function(){
var myFunc = function(){
var bar = "Bar";
return myFunc2() + bar;
}
function myFunc2(){
return "Foo ";
}
})()
あるいは
(function(){
function myFunc(){
var bar = "Bar";
return myFunc2() + bar;
}
var myFunc2 = function(){
return "Foo ";
}
window.fooBar = myFunc();
})()
console.log(fooBar);