В JavaScript замыкание — это функция, которая запоминает свое лексическое окружение, даже если она вызывается вне своей области видимости.
Расскажи про замыкания (closures) в 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.
Таким образом, замыкания позволяют создавать функции с приватными переменными и сохранять состояние без использования глобальных переменных.