Является ли возвращаемая функция замыканием

Функция add сохраняет доступ к лексическому окружению вызова make, включая prefix. Такое сочетание функции и доступного ей окружения называют замыканием.

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

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

Функция add сохраняет доступ к лексическому окружению вызова make, включая prefix. Такое сочетание функции и доступного ей окружения называют замыканием.

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

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

Условие

Разберите function make(prefix){ return value => prefix + value; } const add = make('id:');. Почему add('7') работает после завершения make?

Ответ

Функция add сохраняет доступ к лексическому окружению вызова make, включая prefix. Такое сочетание функции и доступного ей окружения называют замыканием.

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

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

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

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

Подробнее