gpt4 book ai didi

javascript - JS继承在构造函数中覆盖?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:40:52 28 4
gpt4 key购买 nike

有人能给我解释一下吗?

class BaseClass {
prop = 88;
constructor(){
console.log("baseClass prop is ", this.prop);
}
}
class DerivedClass extends BaseClass{
prop = 83;
constructor(){
super();
console.log("derivedClass prop is ", this.prop);
}
}
new derivedClass();

输出是

baseClass prop is  88
derivedClass prop is 83

现在两个 Prop 不应该相同 (83) 吗?因为一个 Prop 覆盖了另一个?我这里有什么问题吗?

最佳答案

您忘记了派生类的构造函数中的 super() 调用。

它的作用是调用基类的构造函数。所以基类的构造函数先于派生类的构造函数运行完成。

意思是基类的console.log语句执行时,prop变量还是88。

关于javascript - JS继承在构造函数中覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com