Дабы немного отдохнуть от курса по JS (а отдых — это смена деятельности), наткнулся на бесплатный курс «Основы программирования». И хоть часть уроков пересекалась с курсом по JS, несколько из них достойны внимания. Например, урок по окружению.
Нет, не это окружение.
Речь о локальном и глобальном окружении в языках программирования. Материал про лексическую область и окружение я худо-бедно переварил — спасибо внятным примерам из конспекта. Дальше ждали замыкания. При первом прочтении глаз даже ни за что не цеплялся, все шло как по маслу. И тут стоило бы напрячься.
Иногда бывает настолько непонятно, что все кажется абсолютно логичным, и не возникает вопросов — так было у меня с замыканиями. Когда дошел до примера, начался мозговой штурм. И теперь у меня возникло уточнение: «При выполнении функции контекст выполнения удаляется из стека, а вот лексическое окружение (если на него ссылается другое лексическое окружение) остается в памяти».