本文最后更新于563 天前,其中的信息可能已经过时,如有错误请发送邮件到1986413837@qq.com
一.call() (了解)
使用call方法调用函数 同时指定被调用函数中this的值
语法:fun.call(想要指向的对象,参数)

二.apply()
使用apply方法调用函数 同时指定被调用函数中this的值
语法:fun.apply(想要指向的对象,[argsArray])
传入参数必须是一个数组

主要跟数组有关系 比如可以求数组最大值
const max=Math.max.apply(Math,[1,3,2,5])
三.bind()
bind()方法不会调用函数 但能改变函数内部this指向
返回由指定的this值和初始化参数改造的原拷贝函数(新函数)

当我们只想改变this指向 并且不想使用这个函数时 可以使用bind 比如改变定时器内部的this指向
小案例:有一个按钮 点击立即就禁用 2秒后开启

我们想要通过this.disabled控制按钮的禁用与否 而定时器函数本质上由window调用 其this指向window
所以我们就要通过bind改变定时器函数this指向 window — > button (结合前面看这里的this就是button)