Я обнимаю голову вокруг закрытия JavaScript и нахожусь в точке, где все падает; т.е. закрытие - это локальные переменные для функции, которые сохраняются в живых после возвращения функции или закрытие представляет собой стек кадров, который не освобождается при возврате функции.
Я начинаю понимать эту концепцию, но чем больше я понимаю, тем больше я продолжаю задаваться вопросом, почему мы должны их использовать.
Пример, подобный этому, заставляет меня понять концепцию, но не дает мне спросить, есть более простой способ сделать это!
function sayHello(name) {
var text = 'Hello ' + name;
var sayAlert = function() { alert(text); }
sayAlert();
}
sayHello('Gath');
Просто интересно, почему мне нужно сохранить локальную переменную? после выхода функции?
Где я могу получить примеры, демонстрирующие решения, реализованные при закрытии, и что ничто другое не сработало бы, кроме закрытия?