● 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.