みかづきブログ その3

3ヶ月つづけてみました。

JavaScriptでgetterとsetterを実装する

通常、モジュールパターンでクラス的なものを実装した際に、変数をインスタンスのメンバ的につかうときは、アクセスするためのメソッドを持たせる必要があります。

function Obj() {
    var x = 0;

    return {
        getX : function() {
            return x;
        },
        setX : function(num) {
            x = num;
        }
    };
};

var obj = new Obj();

console.log(obj.getX()); // => 0
obj.setX(1);
console.log(obj.getX()); // => 1

しかし、こんなことをせずとも、

console.log(obj.x); // => 0
obj.x = 1;
console.log(obj.x); // => 1

という感じでインスタンス変数のようにつかいたい。
そんな要望を叶えてくれる手段にgetterとsetterがあります。

getter / setter の実装

function Obj() {
    var x = 0;

    return {
        get x() {
            return x;
        },
        set x(num) {
            x = num;
        }
    };
};

var obj = new Obj();

console.log(obj.x); // => 0
obj.x = 1;
console.log(obj.x); // => 1

これでOKです。


DEMO