--- title: Замикання slug: Glossary/Closure tags: - JavaScript - Словник translation_of: Glossary/Closure original_slug: Glossary/Замикання ---

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

Приклади

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

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

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

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

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