Bind
Spec
func.bind(thisArg[, arg1[, arg2[, ...]]])
this 지정하기
let dog = {
voice: '멍멍!',
bark: function() {
console.log(this.voice);
}
};
let cat = {
voice: '야옹~',
meow: function() {
console.log(this.voice);
}
}
dog.bark();
let weirdBark = dog.bark.bind(cat);
weirdBark();
응용(기본값 넣기)
function sum(num1, num2) {
const result = num1 + num2;
return console.log(`${num1} + ${num2} = ${result}`);
}
sum(1, 2);
const addHundred = sum.bind(null, 100);
addHundred(1);
Call
Spec
func.call([thisArg[, arg1, arg2, ...argN]])
Use
sum.call(null, 100);
sum.call(null, 100, 50);
Apply
Spec
func.apply(thisArg, [ argsArray])
- call과 동일하지만, args를 array로 받음
Use
sum.call(null, [100, 50]);