已经编写过call了,所以只要把call和apply不一样的地方改一下就行
call和apply最大的区别就是第二个参数,apply的参数都放在了一个数组里面,所以apply本质上是接收两个参数,第一个参数就是obj对象,第二个就是一个数组,它不会像call一样会接受很多个参数。所以,如果第二个参数没有,则直接执行obj.a(),如果有则和call的执行是类似的。
这里面有一个需要注意的地方就是:数组的初始i是0,而不再是1,因为它需要整个数组的元素,实现代码如下:
已经编写过call了,所以只要把call和apply不一样的地方改一下就行
call和apply最大的区别就是第二个参数,apply的参数都放在了一个数组里面,所以apply本质上是接收两个参数,第一个参数就是obj对象,第二个就是一个数组,它不会像call一样会接受很多个参数。所以,如果第二个参数没有,则直接执行obj.a(),如果有则和call的执行是类似的。
这里面有一个需要注意的地方就是:数组的初始i是0,而不再是1,因为它需要整个数组的元素,实现代码如下: