화살표 함수 this
this는 함수가 어떻게 호출됐는지로 정해지지만 화살표 함수는 자신만의 this를 만들지 않고 바깥 this를 캡처한다.
| 상황 | 일반 함수 | 화살표 함수 | 선택 기준 |
|---|---|---|---|
| Object method | 호출 객체가 this | 바깥 this 사용 | 객체 상태를 읽으면 일반 함수 |
| Callback | 호출자가 this를 정함 | 상위 this 유지 | this 손실을 막고 싶으면 화살표 |
| Event listener | 리스너 대상이 this가 될 수 있음 | 외부 상태를 this로 사용 | DOM 요소가 필요한지 확인 |
| Constructor | new와 prototype 사용 가능 | new 불가 | 인스턴스 생성이면 일반 함수/class |
| arguments | 자신의 arguments 있음 | 바깥 arguments 참조 | 가변 인자는 rest parameter 사용 |
화살표 함수는 짧은 문법보다 this 캡처 규칙 때문에 쓰는 자리와 피해야 할 자리가 갈린다.