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