我知道javascript中的调用和应用,但javascript调用和应用之间的区别究竟如何?另一件事我发现一些代码一起使用这个:
function doSomething() {
return Function.prototype.call.apply(Array.prototype.slice, arguments);
}
与...相同。
Array.prototype.slice.apply(arguments)
为什么我们要使用呼叫并一起申请?
答案 0 :(得分:4)
不,它不一样。 Array.prototype.slice.apply(arguments)
在当前argument
对象上应用slice函数,而Function.prototype.call.apply(Array.prototype.slice, arguments);
在数组上调用slice函数,该函数作为第一个参数提供。
使用新的EcmaScript语法,这样的事情会变得更容易。您的doSomething
相当于
function doSomething(array, ...)
array.slice(...); // assuming array is really an array
}
而第二个相当于
function (...) {
arguments.slice(); // assuming argument objects are actual arrays
}
答案 1 :(得分:1)
ase相同
Array.prototype.slice.apply(arguments)
是的,我认为它也一样.. !!