【javascript】クロージャ
スコープチェインは、作成された関数が生存している間、保持される。
// 関数オブジェクトをリターンする関数 function createCounter() { var n = 0; // クロージャを作成して返す return function() { return n++; }; } // createCounter()を呼び出し、 // 戻り値 (関数オブジェクト) を変数に格納しておく var counter = createCounter(); //使ってみる alert(counter()); // 0 alert(counter()); // 1
生成された関数オブジェクトは、自分が作られた環境を保持している。
ローカル変数 n への参照を保持している。
コメント