super的问题
来源:7-2 【TS类型断言、转换应用】 类型断言的9种使用场景 1
薯片掉地上了
2021-11-01
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
写回答
1回答
-
keviny79
2021-11-01
super 和后端Java语言的super不完全一样。
1. 在子类构造函数中这样 用 super() ——表示调用父类的构造函数 【第5章手写源码中有解释为什么可以调用父类构造函数,你可以往后看就明白了,如果看不明白再问,这样你的印象会更深!】
2. super 出现在子类实例方法中,super.方法() 编译成 js 后 会自动演变成 super.prototype.方法()
3 super 无法调用父类实例属性,因为父类实例属性只能通过子类实例对象或父类实例对象来调用。
00
相似问题