我有两个classe;存储库和UserRepository。我想在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()
?
答案 0 :(得分:2)
现在上述不起作用是有道理的,因为这可能是对一个实例的反应,在这种情况下我没有实例。
不,this
如何引用一个实例,就像你说你没有?
不,静态方法也只是像任何其他方法一样的函数,this
指的是它们被调用的任何东西。在UserRepository.printModel();
中,this
会引用UserRepository
。您只需使用this.model()
来调用该类的静态.model()
方法。