繼續介紹關於 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 執行時,如讀不到相關資源,會往上一層查詢!!
最後,祝大家中秋節快樂!!