如何在子类中访问getter的超类值?

Jud*_*her 6 javascript inheritance overriding typescript

在派生类中访问a的supergetter似乎不起作用:

class Foo {
    private _message:string = "Hello,";

    public get Message():string {
        return this._message;
    }
}

class Bar extends Foo {
    public get Message():string {
        return super.Message + " World";
    }   
}

var snafu:Bar = new Bar();
document.write(snafu.Message);

// Expected: "Hello, World"
// Actual: "undefined World"
Run Code Online (Sandbox Code Playgroud)

如何正确覆盖getter并使用该super值?

Rya*_*ugh 8

我不一定赞同你继续采用这种方法,但......

class Bar extends Foo {
    public get Message():string {
        return Object.getOwnPropertyDescriptor(Foo.prototype, 'Message').get.apply(this) +  ' World';
    }   
}
Run Code Online (Sandbox Code Playgroud)

原型继承并不能使这一点特别简单.