> Что еще можно сделать с помощью замыканий в JavaScript кроме счетчика (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: ITFB, Софт Медиа Групп
Стек: JavaScript
> Пример ответа
Замыкания в JavaScript - это мощный механизм, который выходит далеко за рамки простого счетчика. Вот несколько ключевых применений:
-
Фабрики функций - создание функций с предустановленными параметрами. Например,
function createMultiplier(factor) { return (x) => x * factor; }-const double = createMultiplier(2)запоминаетfactor. -
Модульный паттерн (IIFE) - инкапсуляция приватных данных. Через замыкание можно скрыть переменные и методы, экспортируя только публичный API:
const counter = (() => { let count = 0; return { increment: () => ++count, get: () => count }; })(). -
Мемоизация - кэширование результатов дорогих вычислений. Замыкание хранит кэш:
function memoize(fn) { const cache = {}; return (arg) => cache[arg] ?? (cache[arg] = fn(arg)); }. -
Обработчики событий с сохранением состояния - например, при клике на кнопку запоминать, сколько раз она была нажата, без глобальных переменных.
-
Каррирование - преобразование функции с несколькими аргументами в цепочку функций, каждая из которых запоминает предыдущие аргументы через замыкание:
const add = (a) => (b) => a + b. -
Таймеры и асинхронные операции - корректный захват переменных в циклах (например,
for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 100); }- проблема решается через замыкание сletили IIFE). -
Ленивые вычисления - отложенное выполнение, когда результат вычисляется только при первом вызове и запоминается.
Таким образом, замыкания - это основа для функционального программирования, инкапсуляции и оптимизации в JavaScript.
> Похожие задачи по frontend
Как реализовать показ попапа через 3 секунды после захода на сайт с возможностью закрытия и запоминанием закрытия между сессиями?
Что делает метод json() у объекта response в JavaScript
Как запустить код в консоли браузера
Какие способы передачи контекста исполнения функции существуют в JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью