以下のコードを検討してください。
//for extend classes
function extend(subClass,superClass){
var F=function(){};
F.prototype=superClass.prototype;
subClass.prototype=new F();
subClass.prototype.constructor=subClass;
}
//basic sender object
function Sender(){}
Sender.prototype = {
...
};
//interface
//extend method 1:
function BackendAdmin(){}
BackendAdmin.prototype.Sender = function(){};
extend(BackendAdmin.Sender,Sender); //will generate prototype of undefined error
//extend method 2:
function BackendAdmin(){
this.Sender = function(){};
extend(this.Sender,Sender);// Seems can not be extended
}
// instance
var myadmin=new BackendAdmin();
myadmin.Sender.StartLoading(); // do not have method for method 2.
この場合、BackendAdmin で基本的な送信者クラスのメソッドを継承する送信者インスタンスを作成したいと思います。また、必要に応じて BackendAdmin で送信者のメソッドをオーバーライドする必要があります。しかし、次のようなものを使用しない限り、両方のケースで機能しないようです:
this.sender = new Sender();
拡張機能を使用するにはどうすればよいですか?