call apply bind 的区别
相同点:动态修改当前函数内部环境对象 this 指向 ;
异同点:
执行方式的不同
call apply 改变后立即执行,是同步代码
bind 是异步代码,改变后不会立即执行,会返回一个函数 ,比如改变定时器内部的this指向
传参不同
call 和 bind 逐个传入
apply 以数组的方式传入,可以使用剩余参数传值
三者的使用场景:
call 经常做继承.
apply经常跟数组有关系. 比如借助于数学对象实现数组最大值最小值
bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向。