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
指向
原文:https://www.cnblogs.com/yangguanglei/p/14693954.html