http://qiita.com/hosomichi/items/c7d3cae7884a5e12a064
functionに似た使い方のキーワードget/setを利用して、オブジェクトにプロパティを持たせることができる。
// 基本
var man = {
_age: 0,
get age() { return "age:" + this._age; },
set age(val) { this._age = val; }
};
// クロージャでメンバ変数を隠匿するパターン
var man = (function() {
var _age = 0;
return {
get age() {
return "age:" + _age;
},
set age(val) {
_age = val;
}
}
}());
// オブジェクト定義後にGetter/Setterを追加
var man = { _age: 0 };
man.__defineGetter__('age', function() {
return "age:" + this._age;
});
man.__defineSetter__('age', function(val) {
this._age = val;
});