this란?
- this는 현재 실행되는 코드의 실행 컨텍스트를 뜻한다.
this binding
- this binding은 this에 실행 컨텍스트의 주체를 연결 짓는 것이다. 즉 this가 무엇을 가리킬지 연결하는 것이다.
- this binding은 실행 컨텍스트가 활성화 될 때 한다.
- 실행 컨텍스트는 이 컨텍스트를 지닌 함수가 호출될 때 활성화 됨.
-실행 컨텍스트가 활성화 될 때 (함수를 호출할 때) this가 binding됨
-this는 함수를 호출할 때 정해진다. 함수를 어떻게 호출했느냐의 따라서 this가 달라짐.
this binding의 5가지 케이스
- 전역공간에서 : window | global
- 함수호출시 : window | global
- 메서드 호출시 : 메서드 호출 주체 (메소드명 앞)
- callback 호출시 : 기본적으로 함수 호출시와 동일하다.
- 생성자 함수 호출시 : 인스턴스