首先他们三个的共同点为,都可以改变所调用函数的this指向。
用法:
//这里的f为所要改变this指向的函数,o为调用的对象。
f.call(o)
f.apply(o)
||
let g = f.bind(o)
g()
最接近的应该是call()方法和apply()方法,
call()和apply()的区别在于后续参数的传递。
它俩都是同步代码,改变后立即执行,只改变一次。
Call直接写参数,而apply需要传入数组
f.call(o,1,2)
f.apply(o,[1,2])
||
let g = f.bind(o,2)
g(3)
而bind如上所示,它的用法与apply和call大有不同。他是异步代码,而且永远改变指向。传参方式与call一样。