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 е приключила.