JavaScript 2010-07-04
prototype型継承
これで擬似継承ができる。
function Superclass(){};
function Subclass() {
var /* プライベート変数やらメソッド */;
// コンストラクタに追加や削除するメソッドを書く
Subclass.prototype.(ここにオーバーライドしたいメソッド名を書く)= function() { /* 処理 */};
}
Subclass.prototype = new Superclass();
関数型継承
関数型継承パターンで、親クラスと子クラスでプライベート変数を共有するうまい方法がわからない。
つまり、protected変数みたいな感じにしたい。
そもそもclass baseな言語みたいに使おうということ自体が間違っているのかな?
メソッドを追加したりなどの機能追加が簡単にできる言語なんだから、継承にこだわらなくてもいいのかも。
以下が、関数型継承のテンプレートコードらしい。
var constructor = function(spec, my) {
my = my || {};
// 共有の変数や関数をmyに追加
that = 新しいオブジェクト;
// 特権機能(privateにアクセスできる)を持つメソッドを定義
return that;
};
最終更新:2010年07月04日 23:49