请在javascript中解释apply和call方法

Mih*_*hir 3 javascript

可能重复:
call和apply之间有什么区别?

申请和通话方法之间的主要区别是什么...我通过网络但无法找到最佳解决方案..请帮助我的朋友......

dhe*_*aur 6

除默认参数外,JavaScript中的每个函数都接收两个对象.这些是thisarguments.值this由它的调用模式决定.apply或者call可以用于调用函数并为其提供默认this对象.

这在许多情况下非常有用.例如,arguments是一个类似于数组的对象,但实际上并不是Array所有有用的Array方法.因此,要应用一个Array方法slicearguments,你可以这样做:

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函数进行了很好的介绍:功能终极版.

  • OP一直在询问有关JavaScript的问题.我以为他开始使用JS了.我认为对函数调用模式的正确介绍对他有用.:) (2认同)