STEP 7-3

クロージャ

 クロージャ※2はJavaScriptの関数が持つ仕組みで、他の言語ではあまり見かけない特徴があります。クロージャは「関数が定義されたスコープとその祖先スコープにある変数や関数の使用を維持させる仕組み※3」です。例を見てみましょう(リスト7-3-01)。

7-3-01 closure.js

function createClosure() {

 const value = 'myClosureValue';

 function myClosure() {

  // valueはmyClosureの外ではあるが、myClosureと同じcreateClosureの関数スコープ

にいるので束縛する

  console.log(value);

 }

 return myClosure;

}

const closure = createClosure();

closure();

 処理系がcreateClosure関数を読み込んだ後の実行の流れは以下のようになります。

  1. createClosure関数が呼ばれる(

  2. createClosure関数ではmyClosure関数の参照を返す(

  3. 2で受け取った参照をclosure変数に格納する( ...

Get ステップアップJavaScript フロントエンド開発の初級から中級へ進むために now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.