Пример замыкания с доступом к скрытой переменной

Внешняя функция создаёт скрытую переменную, а возвращённая вложенная функция сохраняет к ней доступ. Каждый вызов фабрики получает собственное окружение.

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

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

Внешняя функция создаёт скрытую переменную, а возвращённая вложенная функция сохраняет к ней доступ. Каждый вызов фабрики получает собственное окружение.

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

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

Условие

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

// TODO: реализовать замыкание

Ответ

Внешняя функция создаёт скрытую переменную, а возвращённая вложенная функция сохраняет к ней доступ. Каждый вызов фабрики получает собственное окружение.

function createSecretReader(secret) {
  return function () { return secret; };
}
const read = createSecretReader('скрытое значение');
console.log(read()); // скрытое значение

После завершения createSecretReader переменная secret остаётся доступной функции read через лексическое окружение. Напрямую обратиться к этой локальной переменной извне нельзя. Замыкание не является шифрованием или защитой секрета от владельца среды исполнения: это механизм области видимости и сохранения состояния.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее