这个问题在这里已经有了答案:
10年前关闭。
apply 和 call 方法之间的主要区别是什么...
我浏览了网络但无法找到最佳解决方案..
请 friend 帮帮我...
最佳答案
JavaScript 中的每个函数除了默认参数外还接收两个对象。它们是 this
和 arguments
。 this
的值由它的调用模式决定。 apply
或 call
可用于调用函数并为其提供默认的 this
对象。
这在很多情况下都非常有用。例如,arguments
是一个类似数组的对象,但并不是真正具有所有有用 Array 方法的 Array
。因此,要在 slice
上应用 Array 方法 arguments
,您可以执行以下操作:
Array.prototype.slice.apply(arguments, [1, 2])
如果
arguments
是 Array
类型的对象,您可以使用arguments.slice(1, 2)
call
只不过是 apply 的修改版本。请参阅难以捉摸的评论。Mr.Douglus Crockford 在这个视频中很好地介绍了 JavaScript 函数: Function the Ultimate 。
关于javascript - 请解释一下javascript中的apply和call方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4428606/