开发者问题收集

无法访问父类属性

2017-07-17
2061

请参阅下面的 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个回答

What is the correct way of accessing parent class properties from parent class as this does not seams to work.

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

更多

  • 即使覆盖后,仍可通过 super 访问父类方法
  • 父类属性将永久被 覆盖

文档

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

basarat
2017-07-17