функции — это значения, содержащие и тело с кодом, и окружение, в котором они созданы. При вызове тело функции видит не то окружение, где вызвана функция, а то, где она была создана.
Выразительный JavaScript. Современное веб-программирование
·
Марейн Хавербеке