Замыкание — это комбинация функции связанной вместе (заключенной) со ссылками на окружающее ее состояние (лексическое окружение). Другими словами, замыкание дает вам доступ к области действия внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз, когда создается функция, во время создания функции.
Замыкание имеет три цепочки областей видимости:
- Он имеет доступ к своей собственной области видимости — переменным, определенным в его фигурных скобках.
- Он имеет доступ к переменным внешней функции.
- Он имеет доступ к глобальным переменным.
Некоторые примеры использования замыканий:
function makeSizer(size) {
return function() {
document.body.style.fontSize = size + 'px';
};
}
var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);
size12
, size14
и size16
теперь являются функциями, которые изменяют размер основного текста до 12, 14 и 16 пикселей соответственно.