JavaScript
クラス

JavaScriptでの静的クラスと動的クラスの作り方

More than 3 years have passed since last update.

//----------------------------------------------

// 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をつかってください(逃