Замикання (англ. closure) — це певний різновид сполучення між областями видимості, що уможливлює доступ до місцевих (локальних) змінних зовнішнього середовища виконання з новоствореного внутрішнього середовища. У JavaScript всяка функція створює замикання.

Приклади

В наступному прикладі наведено безіменну функцію, що має доступ до місцевих змінних зовнішньої функції, що її створила:

function createSequenceGenerator(begin = 0) {
  var value = begin;

  return function() {
    return value++;
  };
}

Місцева змінна value доступна зсередини безіменної функції навіть по завершенню виконання функції createSequenceGenerator, що її створила:

var seq1 = createSequenceGenerator();
var seq2 = createSequenceGenerator(1000);

console.log(seq1());  // виводить 0
console.log(seq1());  // виводить 1
console.log(seq2());  // виводить 1000
console.log(seq2());  // виводить 1001
console.log(seq1());  // виводить 2

Дізнатись більше

Загальні відомості

Технічна довідка

Мітки документа й учасники

Мітки: 
 Зробили внесок у цю сторінку: asmforce
 Востаннє оновлена: asmforce,