Можешь объяснить, что такое closure в JavaScript и описать, как внутренние функции получают доступ к переменным из их окружающей области видимости? — ДейлиПреп