Вопрос проверяет понимание замыканий и сохранения состояния между вызовами функции.
Функция-счётчик будет возвращать увеличивающееся значение при каждом вызове. Это возможно потому, что внутренняя функция сохраняет доступ к переменной из внешней функции. Такая переменная не уничтожается после выполнения, а продолжает жить в замыкании. Каждый вызов использует одно и то же сохраненное состояние.
Замыкание — это функция, которая имеет доступ к переменным внешней области видимости даже после завершения выполнения этой области.
function createCounter() {
let count = 0;
return function () {
count++;
return count;
};
}
const counter = createCounter();
counter(); // 1
counter(); // 2
counter(); // 3
count создается один раз
Он недоступен извне напрямую
Все вызовы работают с одной и той же переменной
Инкапсуляция состояния
Отсутствие глобальных переменных
Часто используется в:
счётчиках
кешировании
фабриках функций
Функция-счётчик с замыканием возвращает возрастающее значение, потому что внутренняя функция сохраняет и изменяет состояние между вызовами.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию