Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since январь 2020 г..
Глобальное свойство globalThis содержит значение глобального this, который является глобальным объектом.
Исторически, для доступа к глобальному объекту использовался разный синтаксис в разных средах JavaScript. В вебе вы могли использовать window, self или frames, но в Worker можно использовать только self. В Node.js ничего из этого не работает, поэтому вы должны использовать global.
Ключевое слово this можно использовать внутри функций в нестрогом режиме. Но в строгом режиме внутри функций и в Модулях this равняется undefined. Вы можете использовать Function('return this')(), но среды, которые отключают eval(), такие как CSP в браузерах, препятствуют использованию Function таким способом.
Свойство globalThis даёт возможность стандартного доступа к глобальному значению this (и как следствие, к глобальному объекту) вне зависимости от окружения. В отличии от похожих свойств, таких как window и self, оно гарантирует работу как в среде, где есть window, так и в среде, где его нет. Таким образом вы можете получить доступ к глобальному объекту даже не зная в какой среде будет запущен код. Чтобы помочь запомнить название, просто запомните, что глобальное значение this равно globalThis.
Во многих движках globalThis будет ссылкой на фактический глобальный объект, но в веб-браузерах из-за соображений безопасности iframe и cross-window он ссылается на Proxy вокруг фактического глобального объекта (который вы не можете получить прямым доступом). Это различие редко актуально в обычном использовании, но его важно знать.
Некоторые другие популярные имена, такие как self и global были исключены из рассмотрения из-за того, что они могут нарушать совместимость с существующим кодом. Смотрите документ по планированию именования для большей информации.
До globalThis единственным кросс-платформенным путём получения глобального объекта в любой среде было Function('return this')(). Однако, это нарушает CSP в некоторых случаях. Например, es6-shim делает такую проверку:
С globalThis дополнительный поиск глобального объекта в разных средах больше не нужен:
| ECMAScript® 2027 Language Specification # sec-globalthis |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 29 июн. 2026 г. by MDN contributors.
Your blueprint for a better internet.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.