无法访问父类属性

时间:2017-07-17 19:58:19

标签: 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中运行以下编译代码时,我得到child = 10且parent = 10.

从父类访问父类属性的正确方法是什么this似乎不起作用。

1 个答案:

答案 0 :(得分:2)

  

从父类访问父类属性的正确方法是什么this不能正常工作。

this指向当前实例。 this.a将指向父级和类中的相同值。基本上,a被覆盖,当父访问this.a时,它访问子属性。

更多

  • 即使在覆盖
  • 之后,也可以通过super访问父方法
  • 父属性已重写永久

文档

https://basarat.gitbooks.io/typescript/docs/classes.html