화살표 함수 vs 일반 함수
화살표 함수는 this를 바깥에서 가져오고, 일반 함수는 호출 방식에 따라 this가 정해집니다.
두 함수 정의 방식은 this 바인딩과 일부 기능에서 다릅니다.
| 구분 | 화살표 함수 | 일반 함수 |
|---|---|---|
| this | 상위 스코프의 this(고정) | 호출 방식에 따라 결정 |
| arguments | 없음 | 있음 |
| 생성자(new) | 불가능 | 가능 |
| 호이스팅 | 안 됨(표현식) | 함수 선언은 됨 |
화살표 함수를 쓸 때
콜백이나 메서드 내부 함수에서 바깥 this를 그대로 쓰고 싶을 때 사용합니다.
일반 함수를 쓸 때
메서드, 생성자, this가 동적으로 바뀌어야 하는 경우에 사용합니다.
결론
콜백에는 화살표 함수가 편리하지만, 객체 메서드나 생성자에는 일반 함수가 맞습니다. this 동작 차이를 이해하는 게 핵심입니다.
← 개발 개념 비교 전체 보기