
回复
call 和 apply 的主要作用,是改变对象的执行上下文,并且是立即执行的。它们在参数上的写法略有区别;bind 也能改变对象的执行上下文,它与 call 和 apply 不同的是,返回值是一个函数,并且需要稍后再调用一下,才会执行。
一、call
call 的写法
需要注意以下几点:
二、applay
apply使用与call大体一致,只是接受参数的方法不同。call可以接收多个参数。apply接收的第一个参数是this,第二个参数是 所需参数所组成的数组。
applay模拟实现
三、bind
bind 方法 与 apply 和 call 比较类似,也能改变函数体内的 this 指向。不同的是,bind 方法的返回值是函数,并且需要稍后调用,才会执行。而 apply 和 call 则是立即调用。
bind模拟实现
验证一下:
普通函数
构造函数
应用场景
1.对象的继承
2.借用方法
使类数组可以使用Array 原型链上的方法
3.Math.max||Math.min
4.数组合并
————————————————
版权声明:本文为博主「LYFlied」的原创文章