Typescript 无法访问父类属性
请参见下面的TypeScript代码:Typescript 无法访问父类属性,typescript,Typescript,请参见下面的TypeScript代码: class x { a = 20; f1(){ console.log("parent > " + this.a); } } class y extends x { a = 10; f1(x?:number){ console.log("chold > " + this.a); super.f1(); } } let z = new y(); z.f1(); 当我在Chrome中运行下面编译的
class x {
a = 20;
f1(){
console.log("parent > " + this.a);
}
}
class y extends x {
a = 10;
f1(x?:number){
console.log("chold > " + this.a);
super.f1();
}
}
let z = new y();
z.f1();
当我在Chrome中运行下面编译的代码时,我得到child=10和parent=10
从父类访问父类属性的正确方法是什么?此
似乎不起作用
从父类访问父类属性的正确方法是什么,因为此不起作用
此
指向当前实例<代码>此。a将指向父级和类中的相同值。本质上,a
被覆盖,当父对象访问this.a
时,它访问子属性
更多
- 即使在重写之后,也可以通过
访问父方法super
- 父属性将被永久覆盖
此
指向当前实例<代码>此。a将指向父级和类中的相同值。本质上,a
被覆盖,当父对象访问this.a
时,它访问子属性
更多
- 即使在重写之后,也可以通过
访问父方法super
- 父属性将被永久覆盖
代码工作正常。您只是覆盖了member
a
的值。无法获得在x
中设置的值。因此,我必须首先研究基类并相应地设计我的子类,因为如果我在子类中使用相同的名称指定一个数据成员,可能会中断基类功能?我不知道您在尝试做什么。但是,如果您将a
声明为private,那么如果您试图重新声明它,编译器会抱怨代码工作得很好。您只是覆盖了membera
的值。无法获得在x
中设置的值。因此,我必须首先研究基类并相应地设计我的子类,因为如果我在子类中使用相同的名称指定一个数据成员,可能会中断基类功能?我不知道您在尝试做什么。但是如果您将a
声明为private,那么如果您试图重新声明它,编译器会抱怨