Популярные ответы
Похожие ответы
Замыкание (closure) в программировании — это особый вид функции, которая определена в теле другой функции и создаётся каждый раз во время выполнения последней. Отличительной чертой замыкания является использование ссылок на переменные, отличные от переменных, объявленных в теле функции-замыкания, и ее параметров.
Не следует путать замыкание с механизмом глобальных переменных, использовавшихся в "не объектных" языках, например, С. Замыкание использует не глобальные переменные, а переменные из своего контекста. При перегрузке контекста значения этих переменных также меняются.
В качестве примера широкоизвестного языка, использующего замыкания, можно привести JavaScript. Если в программе, написанной на этом языке, функция определена в теле другой функции, то первая получает доступ к переменным и параметрам последней.
В другом общеизвестном языке, Java, концепция замыкания реализована посредством анонимных классов. Анонимный класс имеет доступ к полям класса, в контексте которого он определён, а также к переменными включающего метода.
Источники:
Замыкание (программирование) — Википедия
Замыкания в JavaScript