this는 어떻게 결정되나요?
함수를 어떻게 호출했는지(호출 방식)에 따라 this가 정해집니다.
this는 선언이 아니라 호출 시점에 결정됩니다. 일반 호출은 전역(엄격 모드는 undefined), 메서드 호출은 그 객체, new 호출은 새 인스턴스, call/apply/bind는 지정한 객체를 가리킵니다. 화살표 함수는 자신의 this가 없어 상위 스코프의 this를 그대로 씁니다.
핵심 포인트
- 호출 방식이 this를 결정
- 화살표 함수는 상위 this를 고정
- bind/call/apply로 명시 지정