전역 객체
전역 객체는 전역 범위 에 항상 존재하는 객체 를 의미합니다.
JavaScript에선, 전역 객체로 선언된 객체들이 항상 존재합니다. 웹브라우저에서, 스크립트가 var
키워드를 통해 전역 변수를 생성할 때, 이 때 생성되는 변수들은 전역 객체의 멤버로서 생성됩니다. (이것은 Node.js 에서는 예외입니다). 전역 객체의 interface는 스크립트가 실행되고 있는 곳의 실행 컨텍스트에 의존합니다. 예를 들어,
- 웹브라우저에 있는 스크립트가 특별히 백그라운드 작업으로 시작하지 않는 코드들은 그것의 전역 객체로써
Window
를 가집니다. 이것은 Web에 있는 JavaScript 코드의 상당수가 그렇습니다. Worker
에서 실행하는 코드는 그것의 전역 객체로서WorkerGlobalScope
를 가집니다.- Node.js 환경에서 실행하는 스크립트에는 전역 객체로
global
이라는 객체를 가집니다.
globalThis
전역 속성을 사용하면 현재 환경에 관계없이 전역 객체에 접근할 수 있습니다.
var
문 및 상단의 함수 선언 전역 객체에서 만들어지는 속성입니다.
전역 객체의 속성은 global scope에 자동으로 추가됩니다.
JavaScript에서, 전역 객체는 항상 자신에 대한 참조를 가지고 있습니다.
브라우저 에서의 <code>window</code> 객체
window
객체는 브라우저에서 전역 객체입니다. 어느 전역 객체나 함수는 window
객체의 프로퍼티로서 접근될 수 있습니다.
console.log(globalThis === globalThis.globalThis); // true (모든 곳에서)
console.log(window === window.window); // true (브라우저에서)
console.log(self === self.self); // true (브라우저 또는 웹 워커에서)
console.log(frames === frames.frames); // true (브라우저에서)
console.log(global === global.global); // true (Node.js에서)