0

スーパークラスから関数をオーバーライドして、スーパー関数 + 追加コードを呼び出したい。どうすればこれを達成できますか?

function superClass(){
    this.superFunction = function(arg){
        //code
    }
}
function subClass(){
    this.superFunction = function(arg){
        //call super function()

        //aditional code bellow
        //...
    }   
}
subClass.prototype = new superClass();
4

3 に答える 3

0

あなたは「電話」を使うことができます

 this.superFunction = function(arg){
    return superClass.prototype.superFunction.call(this, arg);
};

「call」を使用すると、現在のコンテキストの「this」と渡したい引数を渡すことができます。これにより、クラスのメソッドを superClass メソッドでオーバーライドできます。

于 2013-11-12T19:19:22.833 に答える
0

置き換える前にコピーを保存してください。

function subClass(){
    var prevSuper = this.superFunction;
    this.superFunction = function(arg){
        //call super function()
        prevSuper(arg);
        //aditional code bellow
        //...
    }   
}
于 2013-11-12T18:43:38.640 に答える