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