можно еще по другому сказать, когда функция завершает работу, ее лексическое окружение удаляется, но при замыкании, если функцию выкинули через return в открытый мир, и она использовала переменные внешней функции, то лексическое окружение внешней функции не удалится