如何在JavaScript中取消或添加到arguments对象的开头

时间:2013-11-11 18:51:21

标签: javascript arrays arguments javascript-objects argument-passing

我刚刚学会了convention for popping off the first element of the arguments array(我也学到了Object)。现在我需要做相反的事情。我需要使用unshift操作将值添加到arguments数组的开头(或Object,就像数组一样)。这可能吗?我试过了:

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

这对arguments无效。

1 个答案:

答案 0 :(得分:19)

  1. 使用.call()代替.apply()来调用unshift()

  2. arguments设为this

  3. unshift()
  4. 'hello'设置为unshift()

  5. 的参数
    Array.prototype.unshift.call(arguments, 'hello');
    

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