无法访问父类的属性打字稿
问题描述:
请参考下面无法访问父类的属性打字稿
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运行下面编译的代码,我得到的孩子= 10和父= 10。从“父母”类访问父类属性的正确方法是什么,因为“this”没有接合起作用。
答
从父类访问父类属性的正确方法是什么,因为“this”没有接缝可以工作。
this
指向当前实例。 this.a
将指向父级和班级中的相同值。基本上a
被覆盖,当父母访问this.a
时,它访问子属性。
更多
- 家长的方法是通过
super
访问甚至重写 - 父属性后覆盖永久
代码工作完美。你只是覆盖成员'a'的价值。没有办法达到'x'中设置的值。 –
所以,我必须先研究基类并相应地设计我的子类,因为如果我在具有相同名称的子类中指定数据成员,它可能会使基类功能瘫痪? – Manish
我不知道你在做什么。但是如果你声明'a'是私有的,那么编译器会试图重新声明它 –