TL;DR:
簡単に言えば、バインドは関数を作成し、呼び出しと適用は関数を実行しますが、適用は配列内のパラメーターを期待します
完全な説明
multiplication
関数があると仮定します
function multiplication(a,b){
console.log(a*b);
}
を使用していくつかの標準関数を作成しましょうbind
var multiby2 = multiplication.bind(this,2);
ここで、multiby2(b) は multiplication(2,b) と等しくなります。
multiby2(3); //6
multiby2(4); //8
バインドで両方のパラメーターを渡すとどうなりますか
var getSixAlways = multiplication.bind(this,3,2);
これで、getSixAlways() は乗算 (3,2) と等しくなります。
getSixAlways();//6
パラメーターを渡しても 6 が返されます。
getSixAlways(12); //6
var magicMultiplication = multiplication.bind(this);
これにより、新しい乗算関数が作成され、magicMultiplication に割り当てられます。
いいえ、乗算機能を magicMultiplication に隠しています。
呼び出し
magicMultiplication
は空白を返しますfunction b()
実行すると正常に動作します
magicMultiplication(6,5); //30
電話して申し込んでみてはどうですか?
magicMultiplication.call(this,3,2); //6
magicMultiplication.apply(this,[5,2]); //10