u16suzuの blog

u16suzu のブログです。

javascript の書き方についてモジュールパターンとオブジェクトリテラルパターン

オブジェクトリテラルパターンは手軽な反面、オブジェクト指向でコードをかけない。
モジュールパターンは隠蔽がしやすいので、オブジェクト指向でコードをかける。

オブジェクトリテラルパターン
var Person = {
  name: 'kazuaki',
  age : 36,
  init : function(){
    alert('init');
  },
  doSomething : function(){    
  }
};


Person.init();
// 値を外部から変更できてしまう。
Person.age = 33;
モジュールパターン 即時時刻関数を使用している。
var Person = (function(){
  var _name = 'kazuaki',
       _age = 33;


  function _init() {
  }
  function _getName(){ return _name; }
  function _getAge() { return _age; }


  _init();


  return {
    getName: _getName,
    getAge : _getAge
  };
}());
即時実行関数

jsは関数単位でスコープするため、これを使用してスコープを定義しちゃう。名前空間の汚染を最小にするてきな。。

( function(){
  // something
})();