Михаил Макаров, я бы сформулировал так: когда присваиваешь результат функции counter переменной, в переменной будет храниться возвращаемая функция со всем окружением. Если же просто вызывать counter - функция вместе с окружением будет создаваться каждый раз заново (а потом удаляться за ненужностью)
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.