Jiyong's STUDY
Javascript의 call, apply, bind 본문
call에 대해서는 this와 함께 이전 게시글에서 다루었다.
이 게시글에서 다룰 call과 apply와 bind는 쓰임세가 다 비스무리 하다.
함수를 호출할 때 this를 바인딩하는 것에서는 다 같은 함수다.
다른 점만 간단하게 확인하고 넘어가도록 하겠다.
const foo = {
three: 3
}
const bar = {
addThreeToSum(a, b, c) {
return a + b + c + this.three;
}
}
console.log(bar.addThreeToSum.call(foo, 1, 2, 3));
console.log(bar.addThreeToSum.apply(foo, [1, 2, 3]));
--
node test.js
9
9
--
call은 다수의 인수를 전달하지만, apply는 Array 하나를 받아서 사용한다는 점의 차이가 있다.
const foo = {
a: 'a',
b: 'b',
c: 'c',
f() {
console.log(this.a, this.b, this.c);
}
}
const bar = {
a: 'A',
b: 'B',
c: 'C'
}
const baz = foo.f.bind(bar);
baz()
--
node test.js
A B C
--
bind는 위의 call과 apply와 마찬가지로 this 바인딩을 하지만, 실행 기능은 없고 딱 바인딩만 한다.
종료되며 바인딩한 함수를 리턴하기 때문에 이를 배열에 저장하면 된다.
'Web > 자바스크립트' 카테고리의 다른 글
Javascript의 this와 call (0) | 2021.06.28 |
---|---|
Javascript의 Hoisting과 Scope (0) | 2021.06.28 |
클로저(Closure)란? (0) | 2021.06.24 |
Javascript의 실행 컨텍스트 (0) | 2021.05.26 |
Javascript의 함수 (0) | 2021.05.26 |