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

时间:2013-01-21 17:46:37

标签: javascript inheritance override typescript

在派生类中访问super的{​​{1}}值似乎不起作用:

getter

如何正确覆盖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" 并使用getter值?

1 个答案:

答案 0 :(得分:8)

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

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

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