请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

super的问题

class Parent{
  public n:number=2;
  constructor(){}
  public test(){
    console.log("object123")
  }
}

class Son extends Parent{
  public son!:number;

  constructor(){
    super();
  }
  public test(){
    console.log(super.n)
  }
}
let s = new Son();
s.test();

为什么子类方法里调用super.父类属性 得到的是undefined

正在回答 回答被采纳积分+3

1回答

keviny79 2021-11-01 23:07:18

super 和后端Java语言的super不完全一样。

    1.  在子类构造函数中这样 用 super() ——表示调用父类的构造函数 【第5章手写源码中有解释为什么可以调用父类构造函数,你可以往后看就明白了,如果看不明白再问,这样你的印象会更深!】

    2.  super 出现在子类实例方法中,super.方法() 编译成 js 后 会自动演变成 super.prototype.方法()

   3 super 无法调用父类实例属性,因为父类实例属性只能通过子类实例对象或父类实例对象来调用。


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信