call、apply、bind 都可以动态改变函数体内部this的指向,各自有各自的用法
call接受连续的参数,apply接受数组参数
例如:
function add(a,b){
return a+b;
}
add.call(add,6,4);//10
add.apply(add,[6,4]);//10
bind接受的参数跟call一样,只是bind不会立即调用,它会生成一个新的函数,想什么时候调用就什么时候调用
例如:
function add(a,b){
return a+b;
}
add.call(add,5,3); //8
add.apply(add,[5,3]);//8
bind接受的参数跟call一致,只是bind不会立即调用,它会生成一个新的函数, 你想什么时候调用就什么时候调用。
例如
funciton add(a,b){
return a+b;
}
var foo=add.bind(add,5,3);
foo();//8