是什么决定了super.prop在类中指的是什么



我很困惑为什么super会像在类中那样被设置。

在静态元素中,super.x表示Parent.x

在方法&字段声明赋值,super.x表示Parent.protype.x

MDN表示super是Parent或Parent.prototype,这取决于执行上下文是实例创建还是类初始化。对我来说,这对于静态元素(在类初始化期间可以看到super(和字段声明(在实例创建期间可以看到super(来说是有意义的。然而,方法不是在类初始化期间评估的吗?这样它们就可以放在类的原型上,而不是在实例创建期间?

不是在类初始化期间评估的方法

方法未被克隆或评估,当在类的实例中找不到方法时,将检查原型链

class Parent {
doSomething() {}
}
const parent = new Parent()
class Child extends Parent {}
const child = new Child()
console.log(parent.doSomething === child.doSomething)

最新更新