call bind apply三者的异同

call,apply,bind的相同点

(1)都是改变this指向的

(2)第一个参数都是this要指向的对象

(3)都可以利用后续参数传参

call,apply,bind的区别

(1)call和bind的参数是依次传参,一一对应的

(2)但apply只有两个参数,第二个参数为数组

(3)call和apply都是对函数进行直接调用,而bind方法返回的仍是一个函数

1
2
3
4
5
//call可以调用函数,call可以改变函数中this指向
//dog.eat.call(cat,'鱼','肉');
//dog.eat.apply(cat,['鱼','肉']);
let fun = dog.eat.bind(cat, '鱼', '肉');
fun();
Built with Hugo
主题 StackJimmy 设计