JavaScript 전역 환경에서 this란? - 노드(Node.js)와 브라우저의 차이
JavaScript에서 'this'는 매우 중요한 개념 중 하나입니다. 'this' 키워드는 현재 실행 중인 코드의 컨텍스트를 나타냅니다. 전역 환경에서 'this'의 동작은 노드(Node.js)와 브라우저에서 조금 다를 수 있습니다. 이 글에서는 이 두 환경에서 'this'가 어떻게 작동하는지 알아보겠습니다.
노드(Node.js)에서의 this
노드(Node.js) 환경에서 'this'는 전역 스코프(글로벌 스코프)에서는 'global' 객체를 가리킵니다. 예시 코드를 통해 살펴보겠습니다.
console.log(this); // 노드에서 실행 시, 결과는 [object global] 입니다.
이 코드는 노드 환경에서 실행될 때 'this'가 'global' 객체를 참조하는 것을 보여줍니다.
브라우저에서의 this
브라우저 환경에서 'this'는 전역 스코프에서 'window' 객체를 가리킵니다. 다음은 브라우저에서의 예시 코드입니다.
console.log(this); // 브라우저에서 실행 시, 결과는 [object Window] 입니다.
브라우저에서 'this'가 'window' 객체를 가리키는 것을 확인할 수 있습니다.
this의 동적인 성격
'전역' 스코프에서의 'this'는 환경에 따라 다르게 동작합니다. 그러나 'this'의 값은 호출된 컨텍스트에 따라 동적으로 변할 수 있습니다. 예를 들어, 함수 내에서 'this'는 호출한 객체를 가리킵니다.
function myFunction() {
console.log(this);
}
myFunction(); // 노드 또는 브라우저에서 실행 시, 결과는 해당 환경의 'global' 또는 'window' 객체입니다.
이 코드에서 'myFunction' 내에서의 'this'는 호출한 환경에 따라 'global' 또는 'window' 객체를 참조합니다.
끝으로
JavaScript에서 'this'는 현재 실행 중인 코드의 컨텍스트에 따라 동적으로 변경됩니다. 전역 환경에서 'this'는 노드에서는 'global' 객체를, 브라우저에서는 'window' 객체를 가리킵니다. 이러한 동작을 이해하면 JavaScript 코드를 더욱 효과적으로 작성하고 디버깅할 수 있습니다.
▼ 아래 글도 읽어보세요! ▼