javascript の プロパティ定義。 setter, getter

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;
});