call/appiy/bind存在原型上,函数是实例对象,所以可以访问(继承)
1.call
函数名.call(要修改的this,依次把函数调用需要的参数)
作用:
1.调用函数
2.修改this
使用场景:借用构造函数继承
2.apply
函数名.apply(要修改的this,以数组的形式把所需的参数依次传递)
作用:
1.调用函数
2.修改this
使用常见:求数组的最大值
![](https://img.haomeiwen.com/i13308009/c9aaa7ac04221b28.jpg)
3.bind
函数名.bind(要修改的this.依次传参);
作用
1.修改this
2.返回一个新的函数,这个函数不会被调用,需要再次手动的调用
使用场景
setInterval();
当我们需要修改this的函数,但是又不需要立即执行这个函数的时候,就使用bind修改this即可
下图中,将this的指向从window改为obj
![](https://img.haomeiwen.com/i13308009/ae0f11b2ec684a22.jpg)
网友评论