- 함수를 호출할 때 생성되는 실행 컨텍스트 객체 (현재 실행중인 함수의 객체를 참조)
- This의 값은 함수를 호출하는 방법에 의해 결정됨.
- 호출한 놈(객체) === This
- 함수가 호출될 때마다 This가 가리키는 개체가 동적으로 결정되는 것 === This가 그 객체에 "바인딩"된다.
- bind 메서드를 사용하면 함수가 어떻게 호출되었는지와 무관하게 This를 고정할 수 있음.
일반함수
- 해당 함수를 어떻게 호출하는지에 따라 동적으로 결정됨.
- 일반 함수 호출 -> Global.
- 메소드 호출 -> 메서드를 호출한 주체.
- 생성자 함수 호출 -> 생성자 함수의 반환 값인 인스턴스 객체.
- apply/call/bind 호출 -> 해당 함수의 매개변수로 사용된 인자.
- 상단 세 가지를 제외한 함수 호출 방식일 경우, 전역 객체를 this로 바인드한다. (브라우저 : window / Nodejs: global)
화살표 함수
- this는 함수의 선언 단계에서 이미 정적으로 결정되는데, 언제나 상위 컨텍스트(스코프)의 this를 기리킴.
'공부 > JS' 카테고리의 다른 글
순수함수란? 불변성과 사이드 이펙트와 연결하여 설명해주세요. (0) | 2023.04.05 |
---|---|
배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유 (0) | 2023.04.03 |
require와 import의 차이점 (0) | 2023.04.03 |
parameter와 argument (0) | 2023.03.28 |
Hoisting과 TDZ (0) | 2023.03.28 |
댓글