6

在派生类中访问supera 的值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"

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

4

1 回答 1

8

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

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

原型继承并没有使这变得特别简单。

于 2013-01-21T20:51:58.953 回答