面试常问:call、apple、bind 的区别

247 阅读1分钟

作用

apply、call、bind都是用来改变this指向的

传参区别

三者的第一个参数都是this要指向的那个对象,第二个参数开始就有区别
1:bind和call传参是一样的,把参数一个一个传递进去
2:apply则是要传递一个参数数组

执行区别

1:call和apply都是直接执行
2:bind是返回一个函数,不会直接执行

应用场景

1:call 经常做继承
2:apply经常跟数组有关系. 比如借助于数学对象实现数组最大值最小值
3:bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向