gpt4 book ai didi

ecmascript-6 - es6从父类的静态方法访问子类的静态方法?

转载 作者:行者123 更新时间:2023-12-02 20:33:20 28 4
gpt4 key购买 nike

我想这样做:

class Parent {
static myMethod1(msg) {
// myMethod2 is undefined
this.constructor.myMethod2(msg);
}
}

class Child extends Parent {
static myMethod2(msg) {
console.log('static', msg);
}
}

Child.myMethod1(1);

但是这不起作用。这可以通过其他方式实现吗?我不想在 Parent 中对 Child.myMethod2 进行硬编码,我知道这会起作用,因为我希望随机子类能够定义/覆盖静态方法,但在不事先知道哪个类是子类的情况下从父类调用该方法.

最佳答案

myMethod2 未定义,因为代码错误。 this 是静态方法中的类构造函数,而 this.constructor 是构造函数的构造函数,即 Function。应该是:

class Parent {
static myMethod1(msg) {
this.myMethod2(msg);
}
}

这是反模式,因为 Parent 没有 myMethod2,并且 Parent.myMethod1() 将导致错误。它应该包含无操作 myMethod2,或者被标记为抽象类以永远不会被直接访问。

关于ecmascript-6 - es6从父类的静态方法访问子类的静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937215/

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