JavaScript funciones y argumentos

En JavaScript nada es como parece y siempre tenemos comportamientos peculiares al trabajar con él. Vamos a abordar el uso de funciones y el paso de argumentos. Para ello partiremos del siguiente código:

Se trata de la función sumar que podemos invocar de la siguiente forma:


sumar (2,2);

El resultado será 4 y todo parece sencillo en un primer momento. Ahora bien que pasaría si yo invocara a la función con argumentos adicionales como por ejemplo:


sumar(2,2,2,2);

Curiosamente el código sigue funcionando y nos vuelve a devolver 4. Esto es debido a que Javascript simplemente ignora el resto de argumentos que hemos pasado y ejecuta el método como si fuera suma(2,2). De igual forma podemos invocar la función con un solo argumento sumar (2) . En este caso la situación cambia y el resultado será NaN. Ya que intenta sumar 2 + undefined y el resultado no es un número.

Funciones y argumentos

Javascript nos permite construir código muy flexible en la cuál no importe el número de argumentos y todos sean manejados de la misma forma. Para ello redefinimos la función sumar de la siguiente forma:

En este caso hemos usado la variable "arguments" una variable especial de Javascript que todas la funciones soportan y que nos permite acceder a la colección de argumentos.

Una vez accedida la recorremos con un bucle for y sumamos todos los argumentos para retornar el total. Así pues si invocamos el código con distintos argumentos:


    console.log(sumar(2,2));
    console.log(sumar(2));
    console.log(sumar(2,2,2,2));
 

El resultado será:

El parametro "arguments" nos ha servido para añadir flexibilidad a nuestro código. En principio parece que es un array de Javascript. Sin embargo no lo es ya que no soporta ninguno de los métodos habituales del array. Estamos ante otro de los objetos peculiares de Javascript.

En Genbeta Dev: Cylon.js

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta