본격적으로 callback에서의 this를 논하기전에 call, apply, bind 배경지식을 다루자 ❕❕
✏ call, apply, bind에서의 첫번째 매개변수
thisArg는 func를 실행할때 그 안에서 this를 이것(thisArg)으로
인식하게 해줘라는 것
✏ call , bind는 thisArg 두 번째 매개변수
이는 func를 실행할때 넘겨 줄 매개변수를 ,(콤마)로 구분
📢 call vs apply
apply의 경우 두 번째 매개변수로 배열이 온다
즉, 두번째부터 쭉 나열해서 매개변수를 받느냐(call) 아니면
매개변수를 배열로 합쳐서 하나의 인자로 받느냐(apply)의 차이다.
📣 call, apply vs bind
call, apply는 즉시 호출
bind는 새로운 함수를 생성한다.
마지막 예제
a를 가지고 새로운 함수를 만들어줘 this는 b가 됬으면 좋겠고 인자에는 1, 2를 미리 넣어둘께.
이렇게 해서 새로 만든 함수를 변수 d에 담고 세번째 인자에 3을 넣어서 함수 실행
이제 진짜 콜백함수에서의 this를 알아보자❗
📽 예시 1
🎥 예시 2
🎥 예시 3
addEventListener라는 함수가 자체적으로 콜백 함수를 호출할 때에는 DOM 객체를 this로 명시했기 때문이다.
물론 제어권을 받은 함수가 this를 다른것으로 대체할 수 있다
✔ callback에서의 this 정리