Window: свойство self

Доступное только для чтения свойство Window.self возвращает само окно в виде объекта WindowProxy. Оно может быть использовано вместе с точечной нотацией на объекте window (как window.self) или просто self. Преимущество доступа через self заключается в том, что такую нотацию можно использовать в окружениях, в которых нет объекта window, например Web Workers. Использование self даёт возможность обращаться к глобальному объекту не только в окружениях где есть window (в таком случае self эквивалентно window.self), но также в контексте воркерах (тогда self будет эквивалентно WorkerGlobalScope.self).

Примеры

В следующем примере window.self может быть заменено на window.

js
if (window.parent.frames[0] != window.self) {
  // это окно не является первым в списке
}

Кроме того, когда код выполняется в активном документе браузера, объект window является ссылкой на текущий глобальный объект, и поэтому всё следующее эквивалентно:

js
const w1 = window;
const w2 = self;
const w3 = window.window;
const w4 = window.self;
// w1, w2, w3, w4 равнозначны, но только w2 будет работать в workers

Спецификации

Specification
HTML Standard
# dom-self-dev

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также