Reputation: 52570
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.
Upvotes: 8
Views: 10889
Reputation: 2975
use .call()
instead of .apply()
to invoke unshift()
set arguments
as the this
value of unshift()
set 'hello'
as the argument to unshift()
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.
Upvotes: 21