자바스크립트 함수 호출 실행 , call apply bind
https://www.zerocho.com/category/JavaScript/post/57433645a48729787807c3fd
* call()과 apply()는 함수를 실행하는 기능이 같음
다른점 : 2번째 인자 받는 형식
call() : 개별적으로 나열 , function1.call(this, arg1, arg2 )
apply() : 배열 , function1.apply(this, [arg1, arg2] )
* call(), apply()의 기능
1번째 인자가 this를 대체
다른 객체의 속성을 변경시킬수 있음
var obj = {
string: 'zero',
yell: function( arg1 ) {
console.log(this.string, arg1, this);
}
};
var obj2 = {
string: 'what?'
};
obj.yell(); // 'zero';
obj.yell.call(obj2, arg1); // 'what?' , obj2가 obj의 this를 대체
* bind : call()과 용법은 같고, this를 변경만 하고, 함수실행은 하지 않음
var yell2 = obj.yell.bind(obj2);//
yell2(); // 실행은 별도로
//---------------------
// 참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Function/call
'Code > JavaScript' 카테고리의 다른 글
[Javascript] Lodash 같은 라이브러리 만들기 (0) | 2020.04.04 |
---|---|
[Javascript] 배열, 객체 Deep Copy (0) | 2020.04.04 |
[Javascript] 전개 구문(Spread syntax , spread operator) (...) (0) | 2020.02.27 |
[Javascript] EsLint 에러 해결 방법 (0) | 2020.02.23 |
[Javascript] 비동기 함수, Promise, then, async, await 예제 (0) | 2020.02.12 |