Sobes.tech
Back to questions
Junior
164

Для чего нужно использовать замыкание в JavaScript?

Answer from AI

sobes.tech AI

Замыкание (closure) в JavaScript — это функция, которая «запоминает» окружение, в котором была создана, включая доступ к переменным из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.

Для чего это нужно:

  • Сохранение состояния между вызовами функций.
  • Инкапсуляция данных, создание приватных переменных.
  • Реализация функций с параметрами по умолчанию или частичного применения.
  • В React-хуках замыкания помогают сохранять доступ к состоянию и пропсам внутри функций.

Пример:

function makeCounter() {
  let count = 0;
  return function() {
    count += 1;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

Здесь внутренняя функция сохраняет доступ к переменной count из внешней функции, даже после того, как makeCounter завершила выполнение.