ES6 静态方法引用 self? [复制]

2024-05-23

我有两节课;存储库和用户存储库。我想在 Repository 中定义一个静态方法,该方法在运行时调用 UserRepository 中的静态函数。有什么干净的方法可以做到这一点吗?

class Repository {
    static printModel() {
        return console.log(this.constructor.model())
    }
}

class UserRepository extends Repository {
    static model() {
        return "I am a user";
    }
}

UserRepository.printModel(); // Doesn't work; want it to print "I am a user"

现在,上面的方法不起作用是有道理的,因为这可能指的是一个实例,而我在这种情况下没有实例。

我的问题是,如何引用子类方法model()从基类?


现在,上面的方法不起作用是有道理的,因为这可能指的是一个实例,而我在这种情况下没有实例。

不,怎么会this举个例子,你说你没有?

不,静态方法只是像任何其他方法一样的函数,并且this指的是它们被调用的任何内容。在UserRepository.printModel();, this将参考UserRepository。你可以使用this.model()调用静态.model()该类的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ES6 静态方法引用 self? [复制] 的相关文章