问题
I've just learned the convention for popping off the first element of the arguments array (which I also learned is actually an Object
). Now I need to do the opposite. I need to use an unshift
operation to add a value to the beginning of the arguments
array (or Object
acting like an array). Is this possible? I tried:
Array.prototype.unshift.apply('hello', arguments);
That had no effect on arguments
whatsoever.
回答1:
use
.call()
instead of.apply()
to invokeunshift()
set
arguments
as thethis
value ofunshift()
set
'hello'
as the argument tounshift()
Array.prototype.unshift.call(arguments, 'hello');
As @lonesomeday pointed out, you can use .apply()
instead of .call()
, but you need to pass an array-like argument as the second argument. So in your case, you'd need to wrap 'hello'
in an Array.
来源:https://stackoverflow.com/questions/19913641/how-to-unshift-or-add-to-the-beginning-of-arguments-object-in-javascript