父类:
class F {
protected _name: string = "test";
get name(): string {
console.log('F.this', this)
return this._name;
}
}
子类:
class C extends F {
set name(name: string) {
this._name = name;
}
showName() {
console.log(this.name)
}
}
我的期望是它能够打印出来test,但是实际上却是打印了undefined。
为什么会这样呢?通过断点查看this。
能看出来,C类里面是没有get name()的。所以这里的父类F的get name() 方法没有被继承下来,因此子类C的name就是undefined。
如果想使用name,可以使用super.name去调用父类的get name()方法
引发另一个担忧,什么东西不会被继承下来呢? 有空再继续。