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, javascript
Mestinon For Sale Septilin No Prescription Buy Abana No Prescription Buy Online Avodart Buy Himcolin Online Hytrin For Sale Levitra No Prescription Buy Proscar No Prescription Buy Online Lopid Buy Zebeta Online Azulfidine For Sale Karela No Prescription Buy Clomid No Prescription Buy Online Loxitane Buy Actoplus Met Online Capoten For Sale Celebrex No Prescription Buy Retin-A No Prescription Buy Online Prednisone Buy Levitra Online Prednisone For Sale Tricor No Prescription Buy Tramadol No Prescription Buy Online Lamisil Buy Inderal Online

Esto 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

javascript,dynamic methods,self-invoking functions

3 comentarios para “Funciones autoejecutables en Javascript”

  1. Gravatarcoto Dice:

    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'));
    }

  2. Gravatarcarlos Dice:

    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

  3. GravatarBuzu Dice:

    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.

Deja un comentario

XHTML: puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>