1、都是用来改变函数的this对象的指向的。
2、第一个参数都是this要指向的对象。
3、都可以利用后续参数传参。
4、bind会产生新的函数,(把对象和函数绑定死后,产生新的函数)。call和apply不会产生新的函数,只是在调用时,绑定一下而已。
5、call、apply会立即执行,bind返回的是一个函数,需调用后执行
6、call后面是传递的参数,apply的第二个参数是一个数组,是传输的数据。
使用场景:
1、需要改变某个函数的this指向时
2、当参数较少时可以使用call,参数较多可以使用apply以数组的方式传递
3、当需要重复调用时,可以使用bind新定义一个方法