Вопросы к Поиску с Алисой
Разница между вызовом внутренней функции из внешней и внешней из внутренней заключается в доступе к переменным и объектам. habr.com proglib.io
При вызове внутренней функции из внешней внутренняя функция может использовать переменные и объекты из внешней функции. habr.com proglib.io Включающая функция предоставляет пространство имён, доступное вложенной в неё функции. proglib.io
При вызове внешней функции не получается ссылка на внутреннюю функцию. habr.com Внутренняя функция и её локальные переменные не будут доступны вне внешней функции. habr.com
Однако если превратить вложенную функцию в замыкание, то есть вернуть её объект из внешней функции, то внутренняя функция сможет использовать переменные из внешней даже после завершения выполнения внешней функции. habr.com proglib.io Это позволяет вложенной функции сохранять состояние своего окружения. proglib.io