TL; diana:
简单地说,bind创建函数,调用和apply执行函数,而apply期望数组中的参数
完整的解释
假设有一个乘法函数
function multiplication(a,b){
console.log(a*b);
}
让我们使用bind创建一些标准函数
var multiby2 = multiplication.bind(this,2);
现在multiby2(b)等于乘法(2,b);
multiby2(3); //6
multiby2(4); //8
如果我在bind中传递两个参数会怎样
var getSixAlways = multiplication.bind(this,3,2);
现在getSixAlways()等于乘法(3,2);
getSixAlways();//6
即使传递参数也返回6;
getSixAlways (12);/ / 6
var magicMultiplication = multiplication.bind(this);
这将创建一个新的乘法函数并将其分配给magic乘法。
哦,不,我们将乘法功能隐藏到magic乘法中。
调用
magic乘法返回一个空函数b()
在执行过程中,它运行良好
magicMultiplication (6 5);/ / 30
打电话申请怎么样?
magicMultiplication.call(这3 2);/ / 6
magicMultiplication.apply(这一点,[5,2]);/ / 10