1、call、 apply、bind的用法与区别

1、call、 apply、bind都是为了改变this的指向,两者的区别是传参的方式不一样。call只能一个参数一个参数的传入,apply则只接收一个数组,bind和call很相似,第一个参数是this的指向,从第二个参数开始是接收的参数,只是bind返回的是一个函数。举个栗子:

call、 apply、bindcall、 apply、bind

2、若call()、apply(),bind()的第一个参数是null或者undefined,那么this的指向就是全局变量,在浏览器里就是window对象。

call、 apply、bind

2、分别实现call、apply、bind函数

1、手写一个call函数

call、 apply、bind

2、手写一个apply函数

call、 apply、bind

3、手写一个bind函数

call、 apply、bind

3、总结

apply,call,bind三者的区别:

1、都可以改变函数的this对象指向;

2、第一个参数都是this要指向的对象;

3、都可以传参,call、bind传入的参数列表,apply传入的参数是数组;其中apply和call是一次性传入参数,而bind可以分为多次传入;

4、bind返回对应函数, 便于稍后调用; apply, call则是立即调用

 

如有问题,欢迎指证,谢谢!

相关文章: