Window: свойство self
Доступное только для чтения свойство Window.self
возвращает само окно в виде объекта WindowProxy
. Оно может быть использовано вместе с точечной нотацией на объекте window
(как window.self
) или просто self
. Преимущество доступа через self
заключается в том, что такую нотацию можно использовать в окружениях, в которых нет объекта window
, например Web Workers
. Использование self
даёт возможность обращаться к глобальному объекту не только в окружениях где есть window
(в таком случае self
эквивалентно window.self
), но также в контексте воркерах (тогда self
будет эквивалентно WorkerGlobalScope.self
).
Примеры
В следующем примере window.self
может быть заменено на window
.
if (window.parent.frames[0] != window.self) {
// это окно не является первым в списке
}
Кроме того, когда код выполняется в активном документе браузера, объект window
является ссылкой на текущий глобальный объект, и поэтому всё следующее эквивалентно:
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
Смотрите также
WorkerGlobalScope.self
— эквивалент для'Worker
.