Расскажи про замыкания (closures) в JavaScript. Как часто тебе приходится их применять на практике?

В JavaScript замыкание — это функция, которая запоминает свое лексическое окружение, даже если она вызывается вне своей области видимости.

Короткий ответ

Что ответить на собеседовании

В JavaScript замыкание — это функция, которая запоминает свое лексическое окружение, даже если она вызывается вне своей области видимости.

Подробный разбор

Ответ с пояснениями

В JavaScript замыкание — это функция, которая запоминает свое лексическое окружение, даже если она вызывается вне своей области видимости.

Разберём пример с переменной index и функцией run:

function createRunner() {
  let index = 0;
  function run() {
    console.log(index);
    index++;
  }
  return run;
}

const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2

Здесь функция run замыкает переменную index из внешней функции createRunner. Несмотря на то, что createRunner уже завершила выполнение, run продолжает иметь доступ к index и может изменять его значение. Это позволяет сохранять состояние между вызовами функции run.

Таким образом, замыкания позволяют создавать функции с приватными переменными и сохранять состояние без использования глобальных переменных.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку