Замыкание (closure) — это особенность JavaScript, которая позволяет функции запоминать и доступать переменные из своей области видимости в момент создания, даже после того, как выполнение функции, в которой они были объявлены, завершено. Другими словами, функция имеет доступ к переменным из внешних областей видимости по отношению к ней.
Пример замыкания:
function createCounter() {
let counter = 0;
return function() {
counter += 1;
return counter;
};
}
const myCounter = createCounter();
console.log(myCounter()); // Выводит 1
console.log(myCounter()); // Выводит 2