它们三个作用都是用来强制绑定this指定的对象,但是在使用语法和使用场景上有着不同之处;
一:首先,说一下使用语法上的问题:
1、call(obj,param1,param2,param3······)
参数说明:
obj:指定的对象
param:指定的对象中所带有的参数
注:参数之间用逗号隔开。
2、applay(obj,[param1、param2、param3······])
参数说明:
obj:指定的对象
param:指定的对象中所带有的参数
注:参数使用数组包含起来。
扩:在不传入参数的情况下,call(obj)和apply(obj)的作用是一样的;
3、bind(obj,param1,param2,param3······)
参数说明:
obj:指定的对象
param:指定的对象中所带有的参数
注:参数之间用逗号隔开【和call使用语法一致】
二:使用场景
1、call和apply绑定完this会立即调用当前的函数,而bind绑定完this不会立即调用当前函数,而是将函数返回。
2、call和apply通常用作绑定完立即执行的函数中,而bind通常用来作用在回调函数中定义。