Window: self 屬性

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Window.self 只讀屬性返回視窗本身,為一個 WindowProxy 物件。可以透過點表示法在 window 物件上使用(即 window.self),或者獨立使用(self)。獨立表示法的優點是,在非視窗上下文中存在類似的表示法,例如在 Web Workers 中。透過使用 self,您可以以一種不僅能在視窗上下文中工作(self 將解析為 window.self),而且也能在 worker 上下文中工作(self 將解析為 WorkerGlobalScope.self)的方式來引用全域性作用域。

一個 WindowProxy 物件。

示例

如下使用 window.self 的地方可以被 window 替代。

js
if (window.parent.frames[0] !== window.self) {
  // this window is not the first frame in the list
}

此外,當在瀏覽上下文的活動文件中執行時,window 是對當前全域性物件的引用,因此以下所有都等價

js
const w1 = window;
const w2 = self;
const w3 = window.window;
const w4 = window.self;
// w1, w2, w3, w4 all strictly equal, but only w2 will function in workers

規範

規範
HTML
# dom-self-dev

瀏覽器相容性

另見