GlobalThis в JavaScript

GLOBALTHIS в JavaScript

Язык JavaScript все чаще используется в самых разнообразных условиях. В дополнение к веб-браузеру, который является наиболее распространенным типом хост-среды для JavaScript, вы можете запускать программы JavaScript на серверах, смартфонах и даже роботизированном оборудовании.

Исторически сложилось так, что доступ к глобальному объекту требовал разного синтаксиса в разных  обстановках JavaScript. В веб-браузере вы можете использовать window, self или frames, но в Web Workers будет работать только self. В Node.js ни один из них не работает, и вместо этого вы должны использовать global.

Ключевое слово this может использоваться внутри функций, работающих в нестрогом режиме, но оно не будет определено в модулях и внутренних функциях, работающих в строгом режиме. Вы также можете использовать функцию(‘return this’)(), но обстановки, которые отключают eval (), такие как CSP в браузерах, предотвращают использование функции таким образом.

Свойство globalThis предоставляет стандартный способ доступа к глобальному значению this (и, следовательно, к самому глобальному объекту) в разных обстановках. В отличие от подобных свойств, таких как window и self, он гарантированно работает в оконных и неоконных контекстах. Таким образом, вы можете получить согласованный доступ к глобальному объекту, не зная, в какой обстановке выполняется код. Чтобы помочь вам запомнить имя, просто помните, что в глобальной области это значение-globalThis.

window

Свойство window используется для ссылки на глобальный объект текущего документа в среде браузера. На верхнем уровне кода переменные, объявленные с помощью ключевого слова var, становятся свойствами окна и доступны из любой точки кода.

self

API Web Workers не имеет объекта Window, поскольку он не имеет контекста просмотра. Вместо этого он предоставляет интерфейс WorkerGlobalScope, содержащий данные, которые обычно переносятся окном.

Получить доступ к глобальному объекту в рабочих веб-процессов, мы используем self, которое является синонимом окне свойств объекта window. Подобно window, self является ссылкой на глобальный объект и может использоваться для создания ссылок явных, а не неявных.

frames

Другим способом доступа к глобальному объекту в среде браузера является использование свойства frames, которое работает аналогично self и window.


.

  • November 18, 2020