콜백에서 this가 필요한지에 따라 함수 형태를 고른다

인스턴스 상태가 필요하면 화살표 함수로 캡처하고, 호출자가 this를 주면 this 매개변수로 계약을 드러낸다.

질문판정
콜백이 인스턴스 상태를 읽는가?arrow property 또는 arrow callback으로 바깥 this 캡처
외부 API가 this를 제공하는가?function (this: Context) 형태로 계약 명시
메서드를 값으로 넘기는가?bind 또는 arrow property로 this 끊김 방지
this가 필요 없는가?일반 callback으로 단순하게 유지
기준해석
문제 신호const fn = obj.method; fn() 호출에서 this 소실
해결bind, arrow property, this parameter 중 API 성격에 맞게 선택
판단this는 타입보다 호출 방식의 문제까지 함께 본다

핵심 콜백 this 문제는 문법 문제가 아니라 누가 함수를 호출하는지의 문제다.