Javascript 的 Global object - window
喜歡作者的文章嗎?馬上按「關注」,當作者發佈新文章時,思書™就會 email 通知您。
思書是公開的寫作平台,創新的多筆名寫作方式,能用不同的筆名探索不同的寫作內容,無限寫作創意,如果您喜歡寫作分享,一定要來試試! 《 加入思書》
思書™是自由寫作平台,本文為作者之個人意見。
文章資訊
Categories:
Tags:
Date:
Published: 2019/02/26 - Updated: 2019/08/17
Total: 801 words
給本文個喜歡
或不
關於作者
很久以前就是個「寫程式的」,其實,什麼程式都不熟⋯⋯
就,這會一點點,那會一點點⋯⋯
看看作者的其他文章
看看思書的其他文章
這是一個 JavaScript 的小品,我只是發現很少人在討論這個,就順手寫了下來。
Javascript global object
在 JS 中,window 一直是個我們常用來查瀏覽器狀況的物件,例如,我們要查瀏覽器的內部寬度:
window.innerWidth
就是一個很方便的功能,但是其實,這個 window 就是 javascript 中的 global 物件,他很好玩,最簡單的應用就是看看有那些 function 或是 object 已經被載入了,你可以在 console 中試打一下,你就會發現,waha,沒想到我寫了那麼多的程式。測試 function 被載入了沒
window 在瀏覽器中,就等於 this,不信?試試:
console.log(this === window )
,它就會跟你說‘是’,我們是同樣的東東,所以,一個很好用的應用就是:window 可以很簡單的用來測試那些 global function 被載入了沒,譬如:可是大家不是都用 typeof 來判斷有沒有嗎?這就是一個 global 跟 local 的問題了,如果你用 typeof 在一個 local block 中來判斷 function 存不存在,你如何確定它說的是 global 還是 local function?用 window.function 就可以確定一定是 global,交互運用,你就可以很清楚地知道這個 function 何處可以使用了。
取得 global 變數值
還有一個少用的應用是,用 window 可以確定讀取使用的是 global 變數,用下面的例子來說:
雖然,我們真的不應該用一樣的變數名稱......
let 跟 const 不是 global object
let 跟 const 是新的東東,ES-2015 以後的新增的東西,它們就不是 global 物件了,他們被稱為是 global Environment Record,什麼跟什麼,反正,let 跟 const 就不是 global 物件就是了,有興趣,自己研究一下吧,我是覺得 JS 一路改,有點煩。
讀取同一來源的網站資料
一個瀏覽器的分頁可以有好幾個
<iframe>
,每一個分頁都有它自己的window
物件跟 global 變數,JavaScript 是允許不同的分頁中,如果是同一來源的(同網址,同 portocol,同一個 port),互相存取,這很有趣,再來一個例子:小品啦,希望有用。