코어자바스크립트 this binding

실행 컨텍스트가 언제 생성되는가

- 컨텍스트에 해당하는 함수가 호출되는 순간

 

this가 함수가 호출될 때 호출된다.

함수를 어떤 식으로 호출했냐에 따라 this방식이 달라진다. 

= 동적으로 바인딩 된다. 

 

 

this 종류

 

1. 전역 공간에서 this

- 전역 객체를 가르킨다

브라우저에서는 window

node.js에서는 global

 

2. 함수내부에서 호출시 window/global

- 함수에서도 전역객체를 가르킨다

 

3. 메서드 호출 시

- 메소드 호출 시에는 메소드 호출 주체가 this가 되더라

- . 앞이거나, {} 앞

 

4. callback 호출 시

- 콜백 호출시에는 기본적으로는 함수내부에서와 동일하게 전역객체를 보지만, 콜백함수를 어떤 식으로 처리하는 지에 따라서 this는 얼마든지 달라질 수 있다. 그런 경우에도 bind 명령 등을 통해서 사용자가 직접 this를 명시할 수 있다. 

 

5.생성자함수 호출 시

- 인스턴스가 곧 this이다.