JavaScript中对于call(),apply(),bind()的理解

1、call、apply、bind三者都是用来重定义this这个对象的,其中bind返回的是一个新的函数,所以必须要调用才会执行。

2、call、apply、bind三者的传参情况

三个函数的第一个参数都是this指向的对象,第二个参数以后则有不同,分别如下:

call的参数是直接放进去的,一次往后使用逗号隔开直接放到后面,例如obj.myproject.call(obj1,'a','b','c','d')

apply的所有参数需要放在一个数组里面,例如``obj.myproject.apply(obj1,['a','b','c','d'])`

bind的参数和call一样,只是返回值不一样。

注意:传入参数可以是各种数据类型。

通俗理解就是为了改变this指向