7-1. this란?

자바스크립트에서는 this키워드를 사용할 수 있다. this는 자바스크립트 엔진에 의해 생성되고 코드 어디에서나 참조가 가능하다. this값은 런타임에 결정되며 this는 함수를 호출하는 방식에 의해 값이 달라진다.

개발자 도구(F12) 실행하고 콘솔에서 this를 입력해보자.

this;
// Window

Untitled

Untitled

<aside> 💡 흔히 사용하는 console.log나 console.dir, console.table은 window 객체에 있다.

</aside>

브라우저 환경의 전역 객체인 Window를 가리킨다. 전역 실행 컨텍스트에서 this는 항상 전역 객체를 참조한다. 여기서 전역 실행 컨텍스트란 자바스크립트 엔진이 코드를 실행할 때 처음으로 생성되는 컨텍스트이다. 전역 객체는 자바스크립트를 실행하는 환경에 따라 다르다. 만약 Node.js 환경에서 실행한다면 global 객체가 전역 객체가 된다.

chrome 환경에서 console.log

chrome 환경에서 console.log

node 환경에서 console.log

node 환경에서 console.log

this는 기본적으로 자신이 속한 객체를 나타내는 것임을 알 수 있다.

7-2. 함수 호출 방식

앞서 this는 함수를 호출하는 방식에 따라 값이 달라진다고 설명했다. 함수를 호출하는 방식은 아래와 같다.