Sobes.tech
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). Това позволява да се запази състоянието между извикванията на функцията.