> Что такое замыкания в JavaScript и для чего они нужны (JavaScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Иннотех, Kvando Technologies, циан, ООО Премиум ИТ Солюшен, EvApps, VK, Инити, ITFB, Aston, IT-One, Софт Медиа Групп, Библио-Глобус, ООО Рокет Тех, Rutube, Avito, Exness, Сбер, Исходный Код, Evercode, Purrweb, Кэтрид Диджитал, SmartWay, Яндекс

Стек: JavaScript

> Пример ответа

Замыкание (closure) - это функция, которая "запоминает" своё лексическое окружение даже после того, как внешняя функция завершила выполнение. Простыми словами: замыкание даёт доступ к переменным внешней функции из внутренней, даже если внешняя уже вернула результат.

Пример:

JAVASCRIPT
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2

Здесь внутренняя функция "замыкает" переменную count и продолжает её изменять.

Для чего нужны:

  1. Сокрытие данных - создание приватных переменных (как в примере выше).
  2. Фабрики функций - генерация функций с предустановленными параметрами (например, function multiply(a) { return (b) => a * b; }).
  3. Обработчики событий - сохранение состояния в асинхронном коде (например, в циклах с setTimeout).
  4. Каррирование - частичное применение аргументов.

Замыкания - основа многих паттернов в JavaScript, от модулей до функционального программирования.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью