看下面这段代码:
class Base {
name = "base";
constructor() {
console.log("My name is " + this.name);
}
}
class Derived extends Base {
name = "derived";
}
// Prints "base", not "derived"
const d = new Derived();
输出的是 base,而不是 derived:

这是因为 JavaScript 下列的初始化规则:
基类的成员初始化
基类的构造函数初始化
子类的成员初始化
子类的构造函数初始化
这意味着基类构造函数在它自己的构造函数中看到了它自己的 name 值,因为派生类的字段初始化还没有运行。
/118228427