1、Function.bind(obj[,param1,param2,...])
obj:这个对象将代替Function类里this对象
param1:Function的第一个参数。param2: Function的第二个参数。
返回值是个方法。
2、Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
3、Function.call(obj[,param1,param2,...])
obj:这个对象将代替Function类里this对象
param1:Function的第一个参数。param2: Function的第二个参数。
4、总结
从上面3个方法的用法可以看出,它们之前主要是传递参数不同,或者函数返回值的不同。bind方法返回的是函数。Function方法不会立即执行,需要调用才会执行。这个是另外两个方法主要的不同,下面看下表格,
bind | apply | call | |
返回值 | 函数方法 | 函数方法执行后的值 | 函数方法执行后的值 |
参数 | 多个参数 | 参数数组 | 多个参数 |
可以总结出有3点:
1)除了bind函数方法返回值不同,其它两个都是返回函数方法执行后的返回值。
2)bind和call的参数传递方法是相同的,不同的是apply的第二个参数是一个数组,方法参数通过这个数组传递。
3)3个函数方法的作用相同,要注意一下具体用法的区别。