call, apply, bind 의 차이점을 알아야 한다하여 함수들을 각각 알아보았다.
저 3개의 함수들 모두 this를 명시적으로 변경하는 함수들로,
자바스크립트는 호출 패턴에 따라 this가 다른 객체를 참조하게 되어 있다.
call과 apply는 this를 특정 객체로 바인딩하면서 함수를 실행하는 함수다.
처음으로 파라메터로 넘기는 값이 명시적으로 변경될 this 값이다.
다만 둘의 차이점은 apply는 첫 번째 인자로 this로 대체할 값을 넣고,
두번째 인자부터는 해당 함수의 파라메터 값을 넘기는데 이때, apply는 배열로, call은 풀어서 파라메터를 전달해준다는 차이가 있다.
bind는 this를 변경하는 함수지만 실행이 아닌, this를 변경하면서 새로운 바인딩한 함수를 생성한다.
특별하게 만들고자 하는 건 없어서 그냥 생각나는대로 실습하고자 콘솔 창에서 연습해본 거.
잘 사용한다면, 불필요하게 노출되거나, 온갖 이상하게 이름을 갖다 붙여 댄 전역변수들을 깨끗하게 정리할 수 있지 않을지 생각해봤다.
'컴퓨터 > javascript' 카테고리의 다른 글
공백 제거, 대문자로 변경 (0) | 2018.02.09 |
---|---|
자바스크립트로 달력 그리기 (0) | 2017.11.30 |
jquery span 안의 문자열 접근하여 비교 (0) | 2017.09.19 |
자바스크립트 정렬해주는 사이트 (0) | 2017.08.18 |
댓글