Funciones autoejecutables en Javascript
Visita este artículo en http://www.estadobeta.com/2006/07/22/funciones-autoejecutables-en-javascript/
Por Ismael en Desarrollo, artículos, javascriptEsto es casi una curiosidad. En Javascript puedes hacer una función que se invoca al momento de declararla, así:
mi_funcion = function(){
alert("hola");
}();
Carga eso en tu navegador. La palabra “hola” aparecerá en un alert apenas refresques la página.
¿Qué pasó?
Normalmente, uno declararía una función asignándola a una variable, así:
var mi_funcion = function(){
alert("hola");
}
Para luego, en otra parte del código, invocarla una o más veces.
mi_funcion();
En Javascript, una variable puede contener una función. Basta con agregar los paréntesis al nombre de la variable para invocar a la función contenida en la variable.
var mi_funcion = function(){
alert("hola");
}
var mi_variable = mi_funcion;
mi_funcion();//esto funciona
mi_variable();//esto también funciona
Entonces, es posible agregar los paréntesis al final de la declaración de la función, y esta se ejecutará inmediatamente y una sola vez. Este es otro ejemplo que recibe un parámetro.
var mi_funcion = function(param){
alert(param);
}(”Hola Mundo!”);
¿y para qué sirve?
Exacto. No para mucho. Las funciones autoejecutables se invocan una única vez e inmediatamente apenas el intérprete de Javascript ha cargado el código.
Un uso posible es crear funciones dinámicas que puedes usar despues en tu aplicación, por ejemplo, para agregar métodos a los objetos base de Javascript. En éste artículo puedes entender un poco más de esto.
Más que nada, estos ejemplos nos dan más pistas sobre la versatilidad de Javascript.
Links
- Servicios:
- Comentarios RSS
- Menear!
- Del.icio.us

8/22/2006 at 5:38 pm
Muy buen artículo, sería bueno mencionar, a modo de cultura general, la otra forma de generar funciones autoejecutables, claro que al momento de cargar la página (window.onload), la ventaja que tiene esto o lo que la diferencia de la mencionada por ismael, radica en que esta última es necesaria para cuando se necesiten que los objetos del HTML ya hayan sido cargados.
ejemplo:
oldLoad = window.onload;
window.onload = function(){
if(oldLoad)
oldLoad();
alert(document.getElementById('item'));
}
3/16/2007 at 10:36 am
como se hace todo eso y como lo usamos con los botones y formularios para que me diga tiene que llenar nombro o apellido o cualquien formilario
9/23/2008 at 2:41 am
De hecho es funcion sirve para mucho mas. Se puede resolver un problema con el scope de los eventos cuando estas creando un objeto. De otra forma no seria posible hacerlo.