Funciones
Cuando se desarrolla una aplicación compleja, es muy habitual utilizar una y otra vez las mismas instrucciones. Un script para una tienda de comercio electrónico por ejemplo, tiene que calcular el precio total de los productos varias veces, para añadir los impuestos y los gastos de envío.
Cuando una serie de instrucciones se repiten una y otra vez, se complica demasiado el código fuente de la aplicación además del mantenimiento .
La solución está en las funciones o conjunto de instrucciones que se agrupan para realizar una tarea concreta y que se pueden reutilizar fácilmente.
Veamos un ejemplo sencillo
Para definir una función se usa la palabra reservada function seguido el nombre de la función (respetando las reglas del lenguaje) y normalmente unos parámetros. Es nuestro caso vamos a crear una función llamada mayor con dos parámetros para que devuelva el mayor. La función normalmente devuelve un valor con return expresión. Se puede omitir return y pasaría a ser un procedimiento.
function mayor(x,y)
{
if (x > y)
return x;
else
return y;
}
A partir de definir la función la podemos reutilizar:
a=6; b=4;
document.write(mayor(a,b));
document.write(mayor(7,8));
document.write(mayor('pepe','manolo'));
Ámbito de las variables en las funciones
VARIABLE GLOBAL está definida en cualquier punto del programa (incluso dentro de cualquier función).
VARIABLE LOCAL está definida sólo dentro del bloque de la función y no existe fuera de ella.
Si una variable se declara fuera de cualquier función, automáticamente se transforma en variable global independientemente de si se define utilizando la palabra reservada var o no. Sin embargo, las variables definidas dentro de una función pueden ser globales o locales.
Si en el interior de una función, las variables se declaran mediante var se consideran locales y las variables que no se han declarado mediante var, se transforman automáticamente en variables globales.
Prueba e indica en el ejemplo qué variable es local y cual global:
function creaMensaje() {
mensaje = "Mensaje de prueba";
var otro ="Otro mensaje";
}
creaMensaje();
alert(mensaje);
alert(otro);
Soñando con las funciones
Antes de diseñar cualquier función, tienes que tener muy claro que es lo que quieres obtener y qué parámetros vas a pasar. También si la función devuelve valores o simplemente es un procedimiento que hace una determinada tarea.
Por ejemplo si deseamos un procedimiento que muestre en pantalla un mensaje de Bienvenida, basta con enviarle el mensaje y lo muestre en pantalla.
function escribe_mensaje(mensaje)
{
alert(mensaje);
}
Esta función se llamaría desde programa:
escribe_mensaje("Bienvenido a todos");
Si queremos que la propia función devuelva un mensaje:
function bienvenido(nombre)
{
return "Bienvenido "+nombre;
}
alert(bienvenido("Pepe"));