Una función, en toda su definición básica tiene varias partes: nombre, parámetros y el cuerpo.
function nombre(param1, param2,..., paramN){
...
}
Como podemos ver, todo y cada uno de los parámetros que le pasamos están bien definidos como argumentos. Pero en Javascript tenemos la posibilidad de que los parámetros de la función sean variables, es decir, que podamos invocarla con más o menos parámetros, con unos u otros parámetros, dependiendo de la situación.
La idea sería poder tener las siguientes invocaciones de la función:
calculardatos(1);
calculardatos(1,4,6);
calculardatos(1,4,6,8);
Como vemos, la cantidad de números varía en cada invocación. Incluso podríamos realizar la siguiente invocación:
calculardatos(1,"texto",true);
En este caso estamos invocando con parámetros de diferente tipo: entero, cadena y booleano.
Un caso de uso es cuando queramos realizar validaciones sobre una estructura de datos sobre la cual el usuario puede añadir mas o menos registros. Por ejemplo, un formulario al cual vamos añadiendo más campos de forma dinámica.
Pero vamos a ver como codificar la función. Para poder tener parámetros variables nos apoyamos en el elemento arguments. Toda función tiene un objeto arguments el cual representa un array com los valores de los argumentos los cuales fueron pasados en la invocación.
Así, una función que simplemente listase los parámetros que se le han pasado como argumentos sería la siguiente:
function calculardatos (){
document.write("Invocación recibida" + "
");
for (x=0;x ");
}
Una vez controlado el objeto arguments, las posibilidades son infinitas.
¿Qué caso de uso se te ocurre para codificar una función con parámetros variables?