Cargando la página...

Usted está aquí:

Closures

Publicado por Gastón Furini el 06.06.2008 09:07:17 en JavaScript - Nivel Intermedio

Avatar de CID
Avatar de

Los closures suelen ser un misterio para muchos, pero no tiene porqué ser asi. Se trata simplemente de una característica que el lenguaje nos propone. Aqui trataré de explicarlo.

Página 01 de 01 | Versión completa

Closures

Tiene que ver con el garbage collector de javascript, con el ámbito de las variables, y con la generación de funciones dentro de otras funciones (no importa si hablamos de objetos o de funciones simples).

Si definís una función dentro de otra, sea anónima o no, dicha función puede depender por el ámbito en el que se encuentra, de variables pertenecientes a la función que la contiene. Javascript a esto lo reconoce e indica al garbage collector que respete estas dependencias, guardando todas las variables que le son necesarias a tu función.

Te lo muestro con un ejemplo que extraigo de otra página (es sencillo) .

Ejemplo de closures

function sayHello2(name) {
  var text = 'Hello ' + name; // local variable
  var sayAlert = function() { alert(text); }
  return sayAlert;
}

var say2 = sayHello2('Jane');
say2();


La funcion interna, anónima en este caso, depende de una variable local de la función que la contiene. Al retornar la referencia de la función "sayAlert" se debería perder el valor de la variable local "text", sin embargo esto no sucede. Se puede acceder a "text" desde la función interna sin problemas.
Mas o menos esta es la idea de Closures. Se trata de encerrar todo lo necesario para el funcionamiento de, por ejemplo, una función y resguardarlo para asegurar que dicho funcionamiento sea el adecuado.

La mejor forma de entenderlo es usarlo, como casi todo en programación.
Espero que este corto artículo sobre closures pueda al menos despejar algunas dudas.

Saludos!

Página 01 de 01 | Versión completa

Descargas asociadas al artículo:

No existen descargas asociadas

Estadisticas:

Artículo leido 251 veces con un puntaje de 0.00 pts

Comentarios.

Sus comentarios son importantes.

No hay comentarios para listar, si desea puede crear el primer comentario para este artículo.

Debe estar identificado para agregar un comentario