繼續介紹關於 JavaScript 中的 腳本區 script block....
上一篇文章連結:http://ithelp.ithome.com.tw/question/10127299
在上一篇文章介紹 JavaScript 的變數宣告時間 parse-time vs run-time 之後
本篇會藉由範例來加以說明,程式&註解如下:
(( 程式是利用 Chrome 瀏覽器執行 & 使用 Console 模式檢視 ))
function f1()
{
alert('outside');
}
f1(); // test1
;(function(){
f1(); // test2
f1 = function()
{
alert('g_var');
}
f1(); // test3
})();
f1(); // test4
test 1 - 結果是 outside -> 無疑
test 2 - 會因為 (function(){...})(); 這個 block 裡面沒有 function f1
所以會去向上讀取 window 變數( window.f1 )
因此 f1 已經是 window.f1 , 所以結果為 outside
test 3 - 因為在 line 12 ~ 15 , f1 被置換成 alert('g_var');
因此結果為 g_var
test 4 - 因為 window.f1 被置換了 , 所以結果也會是 g_var
文章不一次寫完,真的很.....
下回(明天)再做其它的範例說明!!
本篇文章主要說明, script block 執行時,如讀不到相關資源,會往上一層查詢!!
最後,祝大家中秋節快樂!!