Замыкания сохраняют состояние функции даже после того, как функция возвращена. Чтобы создать замыкание, просто определите функцию внутри другой функции и выставьте ее. Выставить это означает вернуть его или передать в другую функцию.

Внутренняя функция будет иметь доступ к переменной, объявленной во внешней функции.

Причиной использования закрытия является конфиденциальность данных. На другом языке привилегированный метод — это открытый метод, который имеет доступ к закрытым данным. В Javascript любой открытый метод, определенный в области закрытия, является привилегированным.

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