2012年7月11日水曜日

[自分用]Javascriptでクラスを作るためのテンプレート



/*
 * Javascriptでクラスを作るためのテンプレート。
 * [特徴]
 * ・Private,Public,Private Static,Public Staticの四スコープの変数・関数を用意している。
 * ・クラス呼び出し(x = new MyClass)可。メソッド呼び出し(x = MyClass)不可。
 * ・コンストラクタ(_initialize)は、他の関数を呼び出せる。
 */


"use strict";


var MyClass = (function() {
  function MyClass() {
    this.initialize.apply(this,arguments);
  }
  
  MyClass.prototype.initialize = function(args) {
    var _private = {};
    var _public = this;
    
    /*
     * 初期化処理(インスタンス単位)
     */
    _private._initialize = function(){
      // ローカル変数
      _private.xxx = null;
      // グローバル変数
      _public.xxx = null;
    };
    
    /*
     * ローカル関数
     */
    _private.xxx = function() { 
      ;
    }
    
    /*
     * グローバル関数
     */
    _public.xxx = function() { 
      ;
    }
    
    // 初期化処理(インスタンス変数)を実行
    _private._initialize();
  }
  
  var _ = {};
  var _static = MyClass.prototype;
  
  /*
   * 初期化処理(クラス変数)
   */
  _._initialize = function(){
    // ローカル・クラス変数
    _.xxx = null;
    // クラス変数
    _static.xxx = null;
  };
  
  /*
   * ローカル・クラス関数
   */
  _.xxx = function() {
    ;
  }
  
  /*
   * クラス関数
   */
  _static.xxx = function() {
    ;
  }
  
  // 初期化処理(クラス変数)を実行
  _._initialize();
  // オブジェクトを返却
  return MyClass;
})();