Назад к вопросам
Middle
105
questionbank

Какова роль замыканий в JavaScript, если не учитывать функции высшего порядка?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Замыкания позволяют функции "запоминать" и иметь доступ к переменным из окружающей лексической области видимости, даже после того, как эта область видимости завершила выполнение.

Это обеспечивает:

  • Инкапсуляцию: Создание приватных переменных и методов.
  • Сохранение состояния: Возможность сохранить значение переменной между вызовами функции.
  • Создание фабрик функций: Генерация функций с предопределенным состоянием.

Пример инкапсуляции:

function createCounter() {
  let count = 0; // Приватная переменная

  return {
    increment: function() {
      count++;
      return count;
    },
    decrement: function() {
      count--;
      return count;
    },
    getCount: function() {
      return count;
    }
  };
}

const counter = createCounter();
// count недоступен напрямую извне
console.log(counter.increment()); // 1
console.log(counter.getCount());    // 1