Javascript调用和应用一起使用

时间:2012-10-26 13:44:40

标签: javascript

我知道javascript中的调用应用,但javascript调用和应用之间的区别究竟如何?另一件事我发现一些代码一起使用这个:

  function doSomething() {
    return Function.prototype.call.apply(Array.prototype.slice, arguments);
}

与...相同。

Array.prototype.slice.apply(arguments)

为什么我们要使用呼叫并一起申请?

2 个答案:

答案 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)
是的,我认为它也一样.. !!