8

我刚刚学会了弹出arguments数组第一个元素的约定(我也学会了实际上是一个Object)。现在我需要做相反的事情。我需要使用unshift操作将值添加到arguments数组的开头(或Object像数组一样)。这可能吗?我试过:

Array.prototype.unshift.apply('hello', arguments);

这对arguments任何事情都没有影响。

4

1 回答 1

21
  1. 使用.call()而不是.apply()调用unshift()

  2. 设置arguments为的thisunshift()

  3. 设置'hello'为参数unshift()


Array.prototype.unshift.call(arguments, 'hello');

正如@lonesomeday 指出的那样,您可以使用.apply()而不是.call(),但您需要传递一个类似数组的参数作为第二个参数。所以在你的情况下,你需要包装'hello'一个数组。

于 2013-11-11T18:52:55.490 回答