Global object

Глобальный объект - это объект, который всегда существует в глобальной области видимости.

В JavaScript всегда определён глобальный объект. В веб-браузере, когда скрипты создают глобальные переменные, они создаются как свойства глобального объекта. (В Node.js это не так.) Interface глобального объекта зависит от контекста, в котором выполняется скрипт.К примеру:

  • В веб-браузере любой код, который не запускается скриптом явно как фоновую задачу, имеет Window в качестве своего глобального объекта. Это покрывает большую часть JavaScript-кода в сети.
  • Код, работающий в Worker имеет WorkerGlobalScope объект в качестве своего глобального объекта.
  • Скрипты, работающие в Node.js имеют объект, который называется global в качестве своего глобального объекта.

Объект window в Браузере

Объект window - Глобальный Объект в браузере. Доступ к любым Глобальным Переменным или функциям может быть получен как к свойствам объекта window.

Получение доступа к Глобальным Переменным

js
var foo = "foobar";
foo === window.foo; // Возвращает: true

После определения Глобальной Переменной foo, мы можем получить доступ к его значению прямо с объекта window, использую имя переменной foo в качестве имени свойства Глобального Объекта window.foo.

Объяснение

Глобальная Переменная foo была сохранена в объекте window, подобно следующему примеру:

js
foo: "foobar";

Получение доступа к Глобальным Функциям

js
function greeting() {
  console.log("Hi!");
}

window.greeting(); // Тоже самое что и обычный вызов: greeting();

Пример выше показывает как Глобальные Функции хранятся в качестве свойств объекта window. Мы создали Глобальную Функцию greeting и вызвали её с помощью объекта window.

Объяснение

Глобальная функция greeting была сохранена в объекте window, подобно следующему примеру:

js
greeting: function greeting() {
  console.log("Hi!");
}