私は数日間javascriptでoopと戦っていますが、解決策が見つかりません.
私は 3 つのオブジェクト、スーパー クラス、子クラス、および子クラスですべての「プロトタイプ」マジックを実行する必要がある inheritance_manager を作成しました。
継承マネージャー:
Inheritance_Manager = {};
Inheritance_Manager.extend = function(subClass, baseClass) {
function inheritance() {
}
inheritance.prototype = baseClass.prototype;
subClass.prototype = new inheritance();
subClass.prototype.constructor = subClass;
subClass.baseConstructor = baseClass;
subClass.superClass = baseClass.prototype;
};
スーパー (親) クラス:
SDSection = function(sectionId, resourceId) {
this.self = this;
this.sectionId = sectionId;
this.resourceId = resourceId;
...
};
SDSection.prototype.doSetups = function() {
...
};
子クラス:
TypedSectionHandler = function(sectionId, resourceId) {
SDSection.call(this, sectionId, resourceId);
...
};
Inheritance_Manager.extend(TypedSectionHandler, SDSection);
TypedSectionHandler.prototype.doSetups = function() {
...
SDSection.doSetups.call(this);
...
};
私がやりたいことは、phpやjavaなどの他のプログラミング言語で簡単です。タイプ「TypedSectionHandler」の子クラスのメソッド「doSetups」から、親クラス「SDSection」の上書きされた「doSetups」メソッドを呼び出したい。
私はこの問題に約1週間苦労しており、基本的なものからより複雑なものまでさまざまな解決策を試しましたが、何もうまくいかないようです.
たとえば、クロムやFirefoxでスクリプトが実行されるたびに、「未定義のメソッド呼び出しを呼び出すことができません」というエラーが表示されるか、より単純な「SDSection.doSetups」が定義されていません。
少なくとも私はここから上記のアプローチを採用し、それを自分のニーズに合わせましたが、とにかく機能せず、ブラウザーは同じエラーで終了しています。ゆっくりと私は真剣に気が狂い始めています。:)
誰かが私が間違っていることと、機能するソリューションがどのように見えるかを知っていますか?
ありがとう
ウド