apply、call、bindの使い方と違い
4116 ワード
appy、call、bindの使い方
apply、call、bindはいずれも関数の中でthisの方向を変えることができます.伝達の最初のパラメータはthisが指す対象です.
apply、call、bindの違い
apply()の2番目のパラメータは、1つの配列またはクラスの配列だけを伝達することができます.call()とbind()の伝達のパラメータは、すべて‘,'(コンマ)で区切られる必要があります.これ以外に、bind()の戻り値は新しい関数であり、呼び出しが必要ではありません.
var name = 'lucy',age = 10;
var obj = {
name: 'jack',
objage: this.age,
myfunc: (sex,num) => {
console.log('this.name' + ' :' + this.age + ' :' + sex + ' :' + num);
}
}
var obj1 = {
name: 'tom',
age: 18
}
obj.myfunc.apply(obj1,[' ','12345']); // tom :18 : :12345
obj.myfunc.call(obj1,' ','12345'); // tom :18 : :12345
obj.myfunc.bind(obj1,' ','12345')(); // tom :18 : :12345
apply、call、bind共通点apply、call、bindはいずれも関数の中でthisの方向を変えることができます.伝達の最初のパラメータはthisが指す対象です.
apply、call、bindの違い
apply()の2番目のパラメータは、1つの配列またはクラスの配列だけを伝達することができます.call()とbind()の伝達のパラメータは、すべて‘,'(コンマ)で区切られる必要があります.これ以外に、bind()の戻り値は新しい関数であり、呼び出しが必要ではありません.