자바스크립트에서는 this
키워드를 사용할 수 있다. this
는 자바스크립트 엔진에 의해 생성되고 코드 어디에서나 참조가 가능하다. this
값은 런타임에 결정되며 this
는 함수를 호출하는 방식에 의해 값이 달라진다.
개발자 도구(F12) 실행하고 콘솔에서 this
를 입력해보자.
this;
// Window
<aside> 💡 흔히 사용하는 console.log나 console.dir, console.table은 window 객체에 있다.
</aside>
브라우저 환경의 전역 객체인 Window
를 가리킨다. 전역 실행 컨텍스트에서 this
는 항상 전역 객체를 참조한다. 여기서 전역 실행 컨텍스트란 자바스크립트 엔진이 코드를 실행할 때 처음으로 생성되는 컨텍스트이다. 전역 객체는 자바스크립트를 실행하는 환경에 따라 다르다. 만약 Node.js 환경에서 실행한다면 global
객체가 전역 객체가 된다.
chrome 환경에서 console.log
node 환경에서 console.log
this
는 기본적으로 자신이 속한 객체를 나타내는 것임을 알 수 있다.
앞서 this
는 함수를 호출하는 방식에 따라 값이 달라진다고 설명했다. 함수를 호출하는 방식은 아래와 같다.