このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Closure (クロージャ)

コンピュータプログラミングにおいて、クロージャとは、第一級関数を持つ言語において、字句的にスコープ化された名前バインディングを実装するための手法です。

JavaScript では、関数がクロージャのコンテキストを作成します。 以下のコードが示すように、内側の関数は count 変数へのアクセスを、createCounter() の実行が完了した後でも維持します。

js
function createCounter() {
  let count = 0;
  return function () {
    count += 1;
    return count;
  };
}

const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3

関連情報