Can a JavaScript function take unlimited arguments?
Something like this:
testArray(1, 2, 3, 4, 5...);
I am trying:
var arr = [];
function testArray(A) {
arr.push(A);
}
But this doesn’t work (output is only the first argument). Or the only way is:
function testArray(a, b, c, d, e...) {
}
Thanks
There’s a weird “magic” variable you can reference called “arguments”:
It’s like an array, but it’s not an array. In fact it’s so weird that you really shouldn’t use it much at all. A common practice is to get the values of it into a real array:
In that example, “args” would be a normal array, without any of the weirdness. There are all sorts of nasty problems with “arguments”, and in ECMAScript 5 its functionality will be curtailed.
edit — though using the
.slice()function sure is convenient, it turns out that passing theargumentsobject out of a function causes headaches for optimization, so much so that functions that do it may not get optimized at all. The simple, straightforward way to turnargumentsinto an array is thereforeMore about
argumentsand optimization.