1、call、 apply、bind的用法与区别
1、call、 apply、bind都是为了改变this的指向,两者的区别是传参的方式不一样。call只能一个参数一个参数的传入,apply则只接收一个数组,bind和call很相似,第一个参数是this的指向,从第二个参数开始是接收的参数,只是bind返回的是一个函数。举个栗子:
2、若call()、apply(),bind()的第一个参数是null或者undefined,那么this的指向就是全局变量,在浏览器里就是window对象。
2、分别实现call、apply、bind函数
1、手写一个call函数
2、手写一个apply函数
3、手写一个bind函数
3、总结
apply,call,bind三者的区别:
1、都可以改变函数的this对象指向;
2、第一个参数都是this要指向的对象;
3、都可以传参,call、bind传入的参数列表,apply传入的参数是数组;其中apply和call是一次性传入参数,而bind可以分为多次传入;
4、bind返回对应函数, 便于稍后调用; apply, call则是立即调用
如有问题,欢迎指证,谢谢!