Argumentos por defecto en funciones javaScript

En PHP es posible (y sencillo) declarar parámetros por defecto en las funciones.

<?php
function qq($a,$b=2)
	{
	return $a+$b;
	}

echo qq(3);		// Devuelve 5
echo qq(3,3);	// Devuelve 6
?>

Vemos que si no asignamos un valor a $b, la función tiene reservado para $b un valor por defecto.

Lamentablemente en javaScript no es posible declarar un argumento por defecto en una función de un modo tan directo. El siguiente ejemplo **no funciona**:

<script type="text/javascript">
function qq(a,b=2)	// Esto no va a funcionar
	{
	return a+b;
	}
</script>

¿Cómo podemos conseguirlo? Pues con un poco de ingenio es posible expresar la idea de «argumento por defecto en funciones javaScript» de la siguiente manera:

<script type="text/javascript">
function qq(a,b)
	{
	if(!b){var b=2;} // Si no hay b, b=2
	return a+b;
	}

document.write(qq(3));		// Devuelve 5
document.write(qq(3,3));	// Devuelve 6
</script>

¿Fácil, no?


Acerca de esta entrada