Blog ElCodiguero
01 Aug 2010 Javascript

Definición de funciones en Javascript

Las funciones son un elemento vital en cualquier lenguaje de programación. Pero no todos los lenguajes las manejan de la misma forma; en muchos son tipos de datos especiales que solamente pueden definirse y luego llamarse con (o sin) parámetros, pero otros como Javascript las tratan como simples variables que pueden ser llamadas. A continuación intento describir de forma sencilla lo que se puede hacer con las funciones en Javascript.

Funciones con nombre y funciones anónimas

En todos los lenguajes se pueden declarar funciones con nombre, en javascript esto es tan simple como hacer:

function mi_funcion(parametros) { }

Esto crea una función de nombre mi_funcion, que luego puede llamarse con los parámetros adecuados.

Algunos lenguajes, además, permiten declarar funciones anónimas: funciones que no tienen un nombre y que sirven para esas ocasiones en las que no se quiere crear una función para usarla solamente una vez. En javascript una situación como esta puede ser crear una función que responda a un evento:

window.onload = function() {}

El código anterior crea una función sin nombre que se asigna al objeto onload, y que puede ejecutarse luego haciendo una llamada a window.onload()

Métodos de objetos

Las funciones anónimas se usan también para agregar métodos a objetos, de hecho es la única forma de hacerlo ya que Javascript no posee una construcción del lenguaje para crear clases.

var miobjeto = { un_metodo : function(parametros) { }};

En este caso miobjeto posee un método un_metodo, que al llamarse como miobjeto.un_metodo(parametros) ejecuta la función anónima. Esto es posible gracias a que en Javascript las variables son un `tipo de dato de primera clase`_

Tipo de dato de primera clase

Se puede encontrar una descripción en Wikipedia de lo que significa ser un tipo de dato de primera clase, pero puesto en términos sencillos quiere decir que las funciones son datos como cualquier otro y que pueden por tanto asignarse, crearse, pasarse como parámetro y manipularse casi de cualquier forma. Así, en Javascript suelen pasarse objetos de función a algunas construcciones comunes del lenguaje, por ejemplo:

1 function mi_funcion() {
2     /* código */
3 }
4 
5 setTimeout(mi_funcion, 1000);
6 setInterval(mi_funcion, 10);
7 algun_elemento.onclick = mi_funcion;

Enlaces relacionados

Activa Javascript para para cargar los comentarios, basados en DISQUS

El Blog de ElCodiguero funciona sobre Pelican

Inicio | Blog | Acerca de