//----------------------------------------------
// static class
//----------------------------------------------
window.A = {
_bar: 'メンバ変数',
hoge: function(){
return this._foo( this._bar );
},
_foo: function( arg ){
alert( arg );
}
};
//呼び出し方
A.hoge();
//----------------------------------------------
// dynamic class (instance, object)
//----------------------------------------------
window.A = function(){
var bar = 'メンバ変数';
alert('コンストラクタ');
this.hoge = function(){
return foo( bar );
}
function foo( arg ){
alert( arg );
}
}
//呼び出し方
var a = new A();
a.hoge();
##解説
個別のメンバ変数をもたせたい場合は動的クラスで書いてnewすればいいですよね。
そうでなくて、メソッドもメンバ変数もすべて共通なら静的クラスを扱います。
今回はJavaScriptでの静的クラス、動的クラスの書き方を紹介しました。
隠蔽化
この静的クラスのとき、メソッドもメンバ変数も外からアクセスできちゃうので、明示的にアンダースコアさん(_)をプレフィックスしてあげましょう。
静的クラスのコンストラクタ
必要なかろーもん!
継承
継承はできないのでprototypeをつかってください(逃