call、apply、bind的用法分别是什么?

call:call 是函数的正常调用方式,并指定上下文 this。
apply:apply 的作用和 call 一样,只是在调用的时候,传参数的方式不同。区别是 apply 接受的是数组参数,call 接受的是连续参数。如下代码:

function add(x,y){
    return x+y;
}
add.call(add, 1, 2); //3
add.apply(add, [1, 2]); //3

bind:bind 接受的参数跟 call 一致,只是 bind 不会立即调用,它会生成一个新的函数,你想什么时候调就什么时候调。如下代码:

function add(x, y){
    return x+y;
}
var f1 = add.bind(add, 1,2); 
f1(); //3
var f1 = add.bind(add, 1,2); 
f1(); //3

猜你喜欢

转载自blog.csdn.net/weixin_42617604/article/details/89178806