W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
window窗口對象的window屬性指向窗口對象本身。因此,以下表達式都返回相同的窗口對象:
window.window
window.window.window
window.window.window.window
...
在網(wǎng)頁中,窗口對象也是全局對象。即:
var global = {data: 0};
alert(global === window.global); // displays "true"
setTimeout("alert('Hi!')", 50); // equivalent to using window.setTimeout.
alert(window === window.window); // displays "true"
讓window屬性引用對象本身很可能使得引用全局對象變得容易。否則,您必須在腳本頂部進行手動分配var window = this;。
另一個原因是,如果沒有此屬性,您將無法編寫,例如,“window.open('http://google.com/')”。您必須使用“open('http://google.com/')”來代替。
使用此屬性的另一個原因是希望提供OOP版本和非OOP版本(尤其是JavaScript模塊)的庫。例如,如果我們引用“this.window.location.href”,一個JavaScript模塊可以在它定義的類中定義一個名為“window”的屬性(因為默認情況下不存在全局“window”變量),這可以在將一個窗口對象傳遞給模塊類的構(gòu)造函數(shù)之后創(chuàng)建。因此,其函數(shù)內(nèi)的“this.window”將引用該窗口對象。在非命名空間版本中,“this.window”將返回“window”,并且還能夠輕松獲取文檔位置。另一個優(yōu)點是,這樣一個類的對象(即使類是在模塊之外定義的)可以隨意更改它們對窗口的引用,如果它們硬編碼了對“window”的引用,它們將無法執(zhí)行此操作。 類中的默認值仍可以設(shè)置為當(dāng)前窗口對象。
規(guī)范 | 狀態(tài) | 評論 |
---|---|---|
HTML Living Standard
該規(guī)范中“Window.window”的定義。
|
Living Standard
|
與最新的HTML 5.1快照沒有區(qū)別 |
HTML 5.1
該規(guī)范中“Window.window”的定義。
|
Recommendation
|
與HTML5沒有區(qū)別 |
HTML5
該規(guī)范中“Window.window”的定義。
|
Recommendation
|
包含Window.window 定義的第一個快照。 |
電腦端 | 移動端 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Android webview | Chrome for Android
|
Edge Mobile | Firefox for Android
|
Opera for Android
|
iOS Safari | |
基本支持 | 支持 | ? | 支持 | ? | ? | ? | 支持 | 支持 | ? | 支持 | ? | ? |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: