Function.prototype.call, Function.prototype.apply 함수는 본질적으로
해당 함수를 호출하는게 본질적인 의미이다.
함수를 호출할 때,
스코프에 따라 this를 바인딩하기 헷갈릴때가 있는데,
명시적으로 이를 정해줄 수 있다는 것도 주요한 의미를 갖는다.
근데 아래를 보면,
let a = {
ori_name: 'ori_value'
};
function func() {
this.func_name = 'func_value';
console.log('func call!!!');
console.log('this is :: ', this);
}
func.call(a);
func.call(a);로 함수가 호출 된 후
a를 확인해 보면
console.log(a);
a 역시 바뀐 걸 확인할 수 있는데,
이것 때문에 call, apply 함수가 함수를 객체에 할당하는 것이라고 착각하기 쉬운데, 아니다.
(참고로 call, apply는 기능은 같고, 매개변수를 받는 형태만 다르다.)
'Dev- > java script, jQuery, Ajax' 카테고리의 다른 글
vue.js 기초 (0) | 2019.05.27 |
---|---|
자바스크립트 MVC 패턴 (0) | 2019.05.26 |
자바스크립트 상속 메서드 (0) | 2019.05.17 |
자바스크립트 프로퍼티 접근 방법의 차이 (0) | 2019.05.12 |
자바스크립트 for문 in vs of (0) | 2019.05.12 |