Middle
Какво е затваряне? Можеш ли да обясниш?
sobes.tech AI
Отговор от AI
Затваряне — това е функция заедно с лексикалната си среда, в която е създадена. Това означава, че функцията „запомня“ променливите от външната област на видимост, дори ако тази външна функция вече е приключила изпълнението си.
Пример на JavaScript:
function makeCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Тук вътрешната функция запазва достъпа до променливата count от външната функция makeCounter, създавайки затваряне (closure). Това позволява да се запази състоянието между извикванията на функцията.