🎯 Собеседование: замыкания в JS
Вопрос → короткий ответ → подводный камень.
Примеры · Программирование · #js #interview
Что такое замыкание?
Функция вместе с ссылкой на переменные из места, где она создана. Переменные живут, пока жива функция.
function counter() {
let n = 0;
return () => ++n;
}
const next = counter();
next(); // 1
next(); // 2
Классическая ловушка
for (var i = 0; i < 3; i++) setTimeout(() => console.log(i));
// 3 3 3 (одна `var i` на всех)
for (let i = 0; i < 3; i++) setTimeout(() => console.log(i));
// 0 1 2 (`let` создаёт новую переменную на итерацию)
Совет: Если спросят «зачем нужно»: приватное состояние, фабрики функций, каррирование, мемоизация.