PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Есть ли что-либо выше window?

DOM и браузер

Выше `window` в браузере ничего нет — это глобальный объект и вершина иерархии в контексте вкладки. Но есть нюансы: фреймы, `globalThis` и родительские окна.

window — вершина в браузере

window — глобальный объект окна/вкладки. Глобальные переменные и функции становятся его свойствами:

window === window.window; // true — ссылается на себя
window.self;              // тоже window

Выше него в рамках одной вкладки ничего нет.

Нюансы — «связанные» окна

Фреймы и iframe

У встроенных фреймов своё window, а над ним:

window.parent; // родительское окно (для iframe)
window.top;    // самое верхнее окно в иерархии фреймов

Для iframe window.top — «выше», чем его window.

window.opener

Окно, открывшее текущее через window.open/target="_blank".

globalThis — универсальная ссылка

globalThis — стандартный способ получить глобальный объект в любой среде:

globalThis === window; // в браузере — true

Это не «выше» window, а универсальное имя для него (в Node — global, в воркере — self).

В других средах

  • Node.js — глобальный объект global (нет window).
  • Web Worker — self (нет доступа к window/DOM).

Коротко для собеседования

Выше window в рамках вкладки ничего нет — это глобальный объект (window === window.window). Нюансы: у фреймов своё window, а над ними window.parent/window.top; window.opener — открывшее окно. globalThis — универсальное имя глобального объекта (в Node — global, в воркере — self), а не что-то «выше».

Другие вопросы раздела