Замыкание создаётся, когда внутренняя функция сохраняет доступ к переменным из области видимости внешней функции, даже после того как внешняя функция завершила свою работу.
В JavaScript каждая функция образует замыкание в момент своего создания, захватывая ссылки на переменные в окружающей её области видимости.
function outer() {
let count = 0;
return function inner() {
count++;
return count;
};
}
const increment = outer();
increment(); // 1
increment(); // 2
Обрати внимание, что inner по-прежнему имеет доступ к count, хотя outer уже вернула значение.
Замыкания активно используются для:
Замыкание захватывает снимок значений переменных в момент создания внутренней функции, поэтому изменения этих переменных после возврата из функции не повлияют на доступ замыкания к ним.
Новый — ещё не проверен сообществом
Вы