【发布时间】:2014-09-20 22:20:18
【问题描述】:
我正在尝试将函数内部可访问的arguments 变量转换为数组。我尝试了两种方法:
Array.prototype.splice.apply(arguments, 0) //fails
Array.prototype.splice.call(arguments, 0) //return array
能否请大家详细说明为什么第一个选项失败而第二个选项成功?
【问题讨论】:
-
.apply()的第二个参数应该是一个数组,比如[0]。 -
其实就是
call和apply的主要区别。 -
确实,所以
Array.prototype.splice.apply(arguments, [0])应该可以工作。apply()和call()不一样! -
错误信息
Function.prototype.apply: argumentsArray is not an array-like object(或类似的东西)应该足够清楚,或者至少告诉你check the docs
标签: javascript