Sobes.tech
Junior

За какво е необходимо да се използва затваряне в JavaScript?

sobes.tech AI

Отговор от AI

Затваряне (closure) в JavaScript е функция, която «запомня» средата, в която е създадена, включително достъпа до променливи от външната област, дори ако тази външна функция вече е приключила изпълнението си.

За какво е необходимо:

  • Запазване на състоянието между извикванията на функции.
  • Инкапсулация на данни, създаване на частни променливи.
  • Реализация на функции с параметри по подразбиране или частично приложение.
  • В React hooks, затварянията помагат да се запази достъпът до състоянието и пропсите вътре във функциите.

Пример:

function makeCounter() {
  let count = 0;
  return function() {
    count += 1;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

Тук вътрешната функция запазва достъпа до променливата count от външната функция, дори след като makeCounter е приключила.