Замыкание - это исполняемый самодостаточный блок кода, который может быть использован много раз.

Виды замыканий:

Глобальные функции - это функция имеет имя и объявляется глобально, такие функции обычно не сохраняют значения внешних переменных констант

Вложенные функции - это функции которые имеют имя и объявлены внутри других сущностей.