JavaScriptでクラス
調べてみると色々なやり方があるみたいだけど、自分は以下の感じでやる事にした。
function ClassName () { this.prop1; this.prop2; this.method1 = function (param) { this.prop1 = param; this.method2(); } this.method2 = function (param) { doSomething(); } } var obj = new ClassName();
無名関数を使ってるんだけど、これで大体の事は用が足りる。
継承のやり方にはいろいろあって、このページが詳しい。けどちょっと難しいかも。
自分の場合は継承っぽいやり方は使わず、メソッドをオーバーライドや追加したい場合は、インスタンス化した後にメソッドを書き換え・追加している。具体的には以下のような感じ。
var obj = new ClassName(); //オーバーライド obj.method2 = function (param) { doSomethingElse(); } //メソッドの追加 obj.method3 = function() { bar(); }
その他、参考にしたページ。
JavaScriptでのオブジェクト指向全般に関してさらっと書いてあるページ。
Functionオブジェクトについて書いてあるページ。
function BaseClass () {}
BaseClass.prototype.method1 = function (param) {}
BaseClass.prototype.method2 = function (param) {}
クラスは上記のような書き方が基本です。
継承は、以下のような形が一般的です。
具体的にはPrototype.jsのextendや、MochiKitのupdateがあります。
オブジェクトのプロパティをコピーするメソッド(SubClass.prototype, BaseClass.prototype);
以下の書き方は、副作用があるので避けたほうがよいです。
SubClass.prototype = new BaseClass();
prototypeについて(ライブラリではなく)知ると、色々わかると思います。
ではー。
function BaseClass () {}
BaseClass.prototype.method1 = function (param) {}
BaseClass.prototype.method2 = function (param) {}
クラスは上記のような書き方が基本です。
継承は、以下のような形が一般的です。
具体的にはPrototype.jsのextendや、MochiKitのupdateがあります。
オブジェクトのプロパティをコピーするメソッド(SubClass.prototype, BaseClass.prototype);
以下の書き方は、副作用があるので避けたほうがよいです。
SubClass.prototype = new BaseClass();
prototypeについて(ライブラリではなく)知ると、色々わかると思います。
ではー。