this

  1. 상황에 따라 달라지는 this

함수와 객체(메서드)의 구분이 느슨한 자바스크립트에서 this는 실질적으로 이 둘을 구분하는 거의 유일한 기능

this는 기본적으로 실행 컨텍스트가 생성될 때 함께 결정됨.

this는 함수를 호출할 때 결정된다고 할 수 있다. 함수를 어떤 방식으로 호출하느냐에 따라 값이 달라지는 것.

  1. 전역 공간에서의 this

전역공간에서 this는 전역 객체를 가리킨다.

전역 컨텍스트를 생성하는 주체가 바로 전역 객체이기 때문.

전역 객체는 런타임 환경에 따라 다른 이름과 정보를 가지고 있다.

브라우저 환경 : 전역객체 - window

Node.js 환경: global

  1. 메서드로 호출할 때의 this

함수는 그 자체로 독립적인 기능을 하지만(독립성ㅇ), 메서드는 자신을 호출한 대상 객체에 관한 동작을 수행한다.

  1. 함수로서 호출할 때의 this