Hay una variable extraña "mágica" puede hacer referencia a los llamados "argumentos":
function manyArgs() {
for (var i = 0; i < arguments.length; ++i)
alert(arguments[i]);
}
Es como una matriz, pero no es una matriz. De hecho, es tan extraño que no deberías usarlo demasiado. Una práctica común es conseguir que los valores de la misma en una matriz real de :
function foo() {
var args = Array.prototype.slice.call(arguments, 0);
// ...
En ese ejemplo, "args" habría una gama normal, sin ninguna de la rareza. Hay todo tipo de problemas desagradables con "argumentos", y en ECMAScript 5 su funcionalidad se verá reducida.
edición — aunque el uso de la función .slice()
seguro que es conveniente, resulta que pasando el objeto arguments
de una función causa dolores de cabeza para la optimización, tanto es así que las funciones que hacen que no puede quedar optimizado en absoluto. Por lo tanto, la forma más sencilla, fácil de convertir arguments
en una matriz es
function foo() {
var args = [];
for (var i = 0; i < arguments.length; ++i) args[i] = arguments[i];
// ...
}
More about arguments
and optimization.
Como alternativa, usted podría tener un parámetro - contenedor "ilimitado" como una matriz (u objeto) y luego pasar todo como una matriz, incluso si solo hay '... ([one_arg])' ... –
Tenga en cuenta que para responder directamente a la pregunta, [No, no puedes.] (Http: // stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept) – Kaiido