window.self

Window.self 読み取り専用プロパティは、WindowProxy のように、ウィンドウ自身を返します。window オブジェクトでドット表記法 (つまり、window.self) を使用して使うことも、単独 (self) で使うこともできます。単独表記法を使用する利点は、Web Workers のような非 window コンテクストにも同様の表記法が存在することです。self を使用することで、window コンテキスト (selfwindow.self として解決されます) だけでなく、worker コンテキスト (selfWorkerGlobalScope.self として解決されます) でも機能するようにグローバルスコープを参照できます。

構文

var w = window.self;  // w === window

次のような window.self の使い方は、window に置き換えることもできます。

js
if (window.parent.frames[0] != window.self) {
  // このウィンドウは、一覧における一番最初のフレームではありません。
}

さらに、ブラウジングコンテクストのアクティブなドキュメントで実行するとき、window は現在のグローバルオブジェクトを参照するため、以下のものはすべて等価です:

js
var w1 = window;
var w2 = self;
var w3 = window.window;
var w4 = window.self;
// w1, w2, w3, w4 は厳密に等価、しかし w2 だけは worker で動作します。

仕様

Specification
HTML Standard
# dom-self-dev

ブラウザー互換性

BCD tables only load in the browser

関連