SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【javascript】クロージャ

スコープチェインは、作成された関数が生存している間、保持される。

// 関数オブジェクトをリターンする関数
function createCounter() {
    var n = 0;
    // クロージャを作成して返す
    return function() {
        return n++;
    };
}

// createCounter()を呼び出し、
// 戻り値 (関数オブジェクト) を変数に格納しておく
var counter = createCounter();

//使ってみる
alert(counter()); // 0
alert(counter()); // 1

生成された関数オブジェクトは、自分が作られた環境を保持している。

ローカル変数 n への参照を保持している。

関連するメモ

コメント