Глобальный объект и globalThis в JavaScript

В этом руководстве вы узнаете, как работать с объектом JavaScript globalThis.

ES2020 представил объект globalThis, который предоставляет стандартный способ доступа к глобальному объекту в разных средах.

Исторически у JavaScript был глобальный объект с разными именами в разных средах.

В веб-браузерах глобальным объектом является window или frames.

Однако Web Workers API не имеет объекта window, поскольку у него нет контекста просмотра. Следовательно, Web Workers API использует self как глобальный объект.

Node.js, с другой стороны, использует ключевое слово global для ссылки на глобальный объект.

СредаGlobal
Веб-браузерыthis
Веб-воркерыself
Node.jsglobal

Если вы пишете код JavaScript, который работает в разных средах и нуждается в доступе к глобальному объекту, вы должны использовать другой синтаксис, например, window, frames, self или global.

Чтобы стандартизировать это, ES2020 представил globalThis, доступный в разных средах.

Например, следующий код проверяет, поддерживает ли текущая среда Fetch API:

const canFetch = typeof globalThis.fetch === 'function'; 
console.log(canFetch);

Код проверяет, является ли функция fetch() свойством глобального объекта. В веб-браузерах globalThis является объектом window. Поэтому, если вы запустите этот код в современном веб-браузере, canFetch будет иметь значение true.

Следующий код возвращает true в веб-браузере:

globalThis === window

Выход:

true
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript