본문 바로가기
공부/JS

this가 동작하는 원리와 용법

by k1mwnjn 2023. 3. 31.

- 함수를 호출할 때 생성되는 실행 컨텍스트 객체 (현재 실행중인 함수의 객체를 참조)

- This의 값은 함수를 호출하는 방법에 의해 결정됨.

- 호출한 놈(객체) === This

- 함수가 호출될 때마다 This가 가리키는 개체가 동적으로 결정되는 것 === This가 그 객체에 "바인딩"된다.

- bind 메서드를 사용하면 함수가 어떻게 호출되었는지와 무관하게 This를 고정할 수 있음.

 

일반함수

- 해당 함수를 어떻게 호출하는지에 따라 동적으로 결정됨.

- 일반 함수 호출 -> Global.

- 메소드 호출 -> 메서드를 호출한 주체.

- 생성자 함수 호출 -> 생성자 함수의 반환 값인 인스턴스 객체.

- apply/call/bind 호출 -> 해당 함수의 매개변수로 사용된 인자.

- 상단 세 가지를 제외한 함수 호출 방식일 경우, 전역 객체를 this로 바인드한다. (브라우저 : window / Nodejs: global)

 

화살표 함수

- this는 함수의 선언 단계에서 이미 정적으로 결정되는데, 언제나 상위 컨텍스트(스코프)의 this를 기리킴.

 

 

 

참고 : https://divheer.tistory.com/189

댓글