Описание наиболее просто описать, как функцию (или метод, как назовешь - не важно), которая помнит о своем окружении - переменных, других функциях, причем чаще всего, это окружение недоступно в глобальном / ином контексте исполнения. Чаще всего, это функция внутри другой функции, по крайней мере, в контексте JS.
Код замыкания с пояснениями