Function Arguments

Habitualmente toda función se define con parámetros, las variables que va a ustilizar durante su ejecución.

El método length nos indica el número de parámetros que aparecen en la definición de la función.

Pero la función puede acceder a los parámetros a través del objeto arguments, una lista tipo array (aunque no es un objeto un array).

Ojo, no se trata de la propiedad arguments del objeto function, que está obsoleta. Es una nueva propiedad arguments.

La lista arguments es un objeto iterable, posee la propiedad length y sus elementos son accesibles por un índice.

Observa que arguments.length no tiene porque coincidir con funciton.length.

  • arguments.length número real de argumentos pasados a la función
  • function.length número de parámetros usados en la definicion de la función

Al definir una función Javascript en principio necesita conocer sus parámetros. Mediante el objeto arguments podemos definir funciones con un número variable de argumentos

var total = function(precio, cantidad) {

var total

total = precio*cantidad;

if (arguments[2] !==undefined)

     total = total+arguments[2]*total/100;

return total

}

console.log("Sin IVA: "+total(10,20, 5));    //Total 210

console.log("Con IVA: "+total(10,20)) ;   //Total 200

Como ves la función precio se define con un par de parámetros, pero la llamo con tres argumentos: precio, cantidad y lo que sería el iva. Usamos argumetns para verificar que hay un tercer parámetro, que se usa para el cálculo del total.

Con este otro ejemplo creo que queda claro como funciona el objeto arguments:

var total = function() {

     return Array.from(arguments);

}

console.log(total(1,2,3,4));

console.log(total(100,200));

En este ejemplo arguments se convierte en un array para devolverlo como resultado.

scripts