gpt4 book ai didi

javascript - ES6 (Babel) - 不能在类定义之外调用扩展类的 super.methodName

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

所以,我知道我可以在子类中使用 super() 来调用在基类上定义的函数。但是,如果我想在别处调用该对象的 super 方法,它就会爆炸

Parent.js

class Parent {
yell() {
console.log('yell')
}
}

Child.js

class Child extends Parent {
shout() {
super.yell() //this works
}
}


Child.super.yell() //this doesnt work

最佳答案

如果你想在实例上调用 super 方法,要么不要在子类中实现该方法(默认调用 super 方法)或者在子类方法实现中调用 super.methodName()

此外,您正在尝试调用类本身的方法而不是实例,如果这是您的目标,您需要使方法static:

class Parent {
static yell() {
console.log('yell')
}
}

class Child extends Parent {

}

Child.yell();

关于javascript - ES6 (Babel) - 不能在类定义之外调用扩展类的 super.methodName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219474/

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