Función de parámetros indefinidos en JavaScript (variable arguments)

Si queremos hacer una variable y no sabemos cuántos parámetros va a tener podemos usar una función de parámetros indefinidos, usando la variable 'params'.

Esta variable actúa como un argv de C, o un args de Java: es un vector con todos los parámetros con los que ha sido llamada la función.

Para saber el número de parámetros enviados podemos usar el método .length, y usándolo dentro de unfor podemos recorrer todos los parámetros.

Un ejemplo de uso sería:

  1. function indefinidos(){
  2. var msj = "";
  3. for(var i =0; i<arguments.length; i++) msj += " - Parametro "+i+": "+arguments[i]+" ";
  4. alert( msj);
  5. }
  6.  
  7.  
  8. indefinidos(1,2,3);
  9. indefinidos("Hola","Adios")


Con ésto nos saldrían dos mensajes de alerta, uno con el texto:
- Parametro 0: 1
- Parametro 1: 2
- Parametro 2: 3

Y otro con el texto:
- Parametro 0: Hola
- Parametro 1: Adios




Cabe aclarar que, en una función que tenga parámetros definidos, arguments seguirá conteniendo todos los parámetros de la función, no sólo los que no tengan variables asignadas. Así, este ejemplo dará exactamente el mismo resultado que el anterior:

  1. function indefinidos(a){
  2. var msj = "";
  3. for(var i =0; i<arguments.length; i++) msj += " - Parametro "+i+": "+arguments[i]+"<br>";
  4. alert( msj);
  5. }
  6.  
  7.  
  8. indefinidos(1,2,3);
  9. indefinidos("Hola","Adios");
 



    Editado por Daniel el 28/02/2008 a las 06:05:47h.