Am envolviendo mi cabeza alrededor de los cierres de JavaScript y estoy en un punto donde las cosas están cayendo en su lugar; es decir es un cierre de las variables locales de una función - mantenido con vida después de la función ha vuelto, o un cierre es un marco de pila que no se cancela la asignación cuando se devuelve la función.¿Por qué tenemos cierres en JavaScript?
Estoy empezando a entender este concepto, pero cuanto más entiendo, más me pregunto por qué tenemos que usarlos.
Un ejemplo como este me hace entender el concepto pero me deja preguntando, ¡hay una manera más simple de hacerlo!
function sayHello(name) {
var text = 'Hello ' + name;
var sayAlert = function() { alert(text); }
sayAlert();
}
sayHello('Gath');
Me pregunto por qué tengo que mantener viva la variable local? después de que la función ha salido?
¿Dónde puedo obtener ejemplos que muestran las soluciones implementadas por cierre y que nada más habría funcionado sino cierres?
Busque aquí un gran lote de respuestas: http://stackoverflow.com/questions/111102/how-does-a-javascript-closure-work –