全域環境與全域物件
這一篇文章會提到全域環境與全域物件在瀏覽器中的執行。
全域環境
首先來執行個 JavaScript 檔案看看:
1 |
等等,這是空的耶!沒寫任何東西也能執行嗎?
首先在執行 JavaScript 時,會先創造全域執行環境,所謂的全域代表可以在任何地方取用它。
而全域環境會創造 2 樣東西:
- 全域物件
- 特殊變數 - this
全域物件
我們試著打開瀏覽器開發者工具的 console,雖然看起來沒東西
但是輸入 this
看看,可以發現明明沒有輸入任何程式碼,卻出現了 Window 這個物件
而這個 window 物件,就是瀏覽器裡這個頁面的全域物件。
this 代表的是這個分頁,如果開另一份分頁,會有另一個全域物件。
每一個視窗都會有自己的執行環境,和自己的全域物件。
來看以下的範例,建立一個變數,並給它一個值:
1 | var a = "hello" |
這時候再打開 console ,輸入 window
看看。
可以看到裡面多了一個物件,名稱是 a,值是 “hello”。
由於創造變數時,變數不是在函式中,所以變數會和全域物件連結,這時的 a 就是全域物件。
如果在瀏覽器運行,全域物件就是 window,還會得到一個特殊變數 this ,在使用瀏覽器的情況下, window = this。
所以如果要找出 a 的話,就可以使用 this.a
、window.a
,或是直接輸入 a
:
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Bucky's Code Journey!