私はそれを読んだ
JavaScriptは、宣言された関数を他の変数の前にキャッシュします。この後、JavaScriptはスコープの先頭に戻り、変数の定義と関数呼び出しを表示された順序で実行します。
そして、私はこの例を理解していません
//bob first initialization
function bob()
{
alert('bob');
}
//set jan to bob via reference
var jan = bob;
//set bob to another function
function bob()
{
alert('newbob');
}
jan(); //alerts 'bob'
bob(); //alerts 'newbob'
両方のbob()
関数が宣言され、実行前にキャッシュされます。それでは、なぜjan()
「newbob」ではなく「bob」にアラートを送信するのですか?janが初期化されたとき、bob()はすでに再宣言されていました。
何か案は?ありがとう