読者です 読者をやめる 読者になる 読者になる

print 'Hello YKazu'

('Python', 'Javascript')

クロージャ

Javascript
counter = function() {
    var i=1;

    return {
        count: function() {
            return i;
        },
        up: function() {
            i = i + 1;
        },
        init: function() {
            i = 1;
        }
    };
};

// 実行コンテキストcounter()の終了
// 同時にクロージャの生成
closure = counter();

// コンテキストの外側から関数スコープ変数のiにアクセス
// ガベージコレクタがiを回収しない
closure.up()
closure.up()
closure.up()
console.log(closure.count()); // 4
closure.init();
console.log(closure.count()); // 1