2
的,我讀了訂購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()
提醒'bob'而不是'newbob'?當jan初始化時,bob()已經被重新聲明。
任何想法?感謝
你用什麼瀏覽器調用'jan' alerts''bob''?無論如何,我都會得到'newbob''即使我在第二個bob聲明之後聲明另一個引用'bob'的變量... – Ian
對不起,您沒有意識到您的示例來自鏈接。我不確定它是否正確,因爲那不是我得到的結果,至少...嘗試它:http://jsfiddle.net/D8R9E/ – Ian
這對我來說也是一樣,都在IE,Firefox和Firefox上警惕「newbob」 Chrome (最新版本) – C5H8NNaO4