Глобальний об'єкт — це об'єкт, що є носієм чи то пак виразником глобальної області видимості.
В JavaScript глобальний об'єкт завжди визначено. У веб-переглядачах створювані скриптами глобальні змінні насправді є властивостями цього об'єкта (натомість, у середовищі node.js це не так). Інтерфейс глобального об'єкта залежить від контексту виконання скрипта:
- В переглядачах всякий код, окрім коду фонових задач, має
Window
за глобальний об'єкт. Це стосується переважної більшості JavaScript-коду тенет; - Код, виконуваний всередині
Worker
, має примірникWorkerGlobalScope
за глобальний об'єкт; - Код, виконуваний в середовищі node.js, має відповідний об'єкт з ім'ям
global
.
Об'єкт window
в перегядачі
Веб-переглядач має window
за глобальний об'єкт, тож будь-яка глобальна змінна чи функція є водночас властивістю об'єкта window
. Наведений нижче приклад засвідчує, що оголошення змінної в глобальній області видимості створює у window
нову властивість:
var foo = 'Дещось'; foo === window.foo; // Вертає true console.log(window.foo); // Виводить "Дещось"
Те саме стосується оголошень функцій:
function greeting() { console.log('Отакої'); } // Те саме, що й простий виклик greeting() window.greeting();