Я обнимаю голову вокруг закрытия JavaScript, и я нахожусь там, где вещи падают на место; i.e замыкание - это локальные переменные для функции, которые сохраняются в памяти после возвращения функции, или замыкание - это стековый фрейм, который не освобождается при возврате функции.Почему у нас есть закрытие в JavaScript?
Я начинаю понимать эту концепцию, но чем больше я понимаю, тем больше я продолжаю задаваться вопросом, почему мы должны их использовать.
Пример, подобный этому, заставляет меня понять концепцию, но не дает мне спросить, есть более простой способ сделать это!
function sayHello(name) {
var text = 'Hello ' + name;
var sayAlert = function() { alert(text); }
sayAlert();
}
sayHello('Gath');
Просто интересно, почему мне нужно сохранять локальную переменную в живых? после выхода функции?
Где я могу получить примеры демонстрации решений, реализованных закрытием, и что ничто другое не сработало бы, кроме как закрытий?
Посмотрите, пожалуйста, на большую партию ответов: http://stackoverflow.com/questions/111102/how-does-a-javascript-closure-work –