可能重复:
call和apply之间有什么区别?
申请和通话方法之间的主要区别是什么...我通过网络但无法找到最佳解决方案..请帮助我的朋友......
除默认参数外,JavaScript中的每个函数都接收两个对象.这些是this和arguments.值this由它的调用模式决定.apply或者call可以用于调用函数并为其提供默认this对象.
这在许多情况下非常有用.例如,arguments是一个类似于数组的对象,但实际上并不是Array所有有用的Array方法.因此,要应用一个Array方法slice上arguments,你可以这样做:
Array.prototype.slice.apply(arguments, [1, 2])
Run Code Online (Sandbox Code Playgroud)
曾经arguments是一个Array类型的对象,你可以使用
arguments.slice(1, 2)
Run Code Online (Sandbox Code Playgroud)
call只不过是修改版本的申请.看到难以捉摸的评论.
Mr.Douglus Crockford在本视频中对JavaScript函数进行了很好的介绍:功能终极版.