Ответ
Замыкание (closure) — это функция, которая запоминает внешние переменные, даже если они вышли из области видимости. В JavaScript замыкания возникают, когда функция использует переменные из родительской области.
function outer() {
const outerVar = 'I am outside!';
function inner() {
console.log(outerVar); // Захватывает outerVar из внешней функции
}
return inner;
}
const closure = outer();
closure(); // Выведет: "I am outside!"
Особенности:
- Замыкания сохраняют ссылку на переменные, а не их значения.
- Позволяют создавать приватные переменные (через IIFE).
- Могут приводить к утечкам памяти, если неосторожно использовать (например, в циклах).