this, 콜백 함수

베니·2022년 5월 2일
0

JS

목록 보기
23/24
post-thumbnail

this

this는 호출하는 방식에 따라 바인딩이 달라진다. 함수 호출은 this에 window가 바인딩되고 메서드의 호출은 this에 메서드의 . 앞에 있는 객체가 바인딩된다. 하지만 메서드 안에서 함수를 호출할때는 호출 함수 앞에 .이 없다면 window를 호출한다. 이럴 경우를 해결하기 위해서는 this를 변수에 넣고 변수를 호출하는 방식을 사용하거나 apply, call, bind를 사용하면 된다. apply와 call의 차이는 매개변수의 형태이며 bind는 apply와 call 함수와 다르게 호출하지 않는 차이점이 있다.

콜백 함수

지금까지 setTeimeout에 메서드를 넘기면 this 바인딩이 풀리는 이유를 모르고 있었는데 오늘 콜백 함수는 '함수'이기 때문에 콜백 함수의 this는 무조건 window를 가리키게 되어있다. 라는 것을 배워 왜 this 바인딩이 메서드의 객체가 아닌 window를 가리키게 되었는지 알 수 있었다.

참고

코어 자바스크립트

profile
안녕하세요~

0개의 댓글