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

2019-02-26  本文已影响0人  vousmevoyezLi

call,apply,bind都可以动态改变函数体内部的this指向,只是用法不同。call接受连续参数,apply接受数组参数,如

function add(a,b){
    return a+b;
}
add.call(add, 5, 3); //8
add.apply(add, [5, 3]); //8

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

function add(a, b){
    return a+b;
}
var foo1 = add.bind(add, 5,3); 
foo1(); //8
var foo1 = add.bind(add, 5,3); 
foo1(); //8
上一篇下一篇

猜你喜欢

热点阅读