我有许多具有以下形式的类。
static defaultInstance() {
if (!defaultInstance) {
defaultInstance = new Child1()
}
return defaultInstance
}
由于它们具有公共基类,因此我想将公共函数添加到基类,但不知道如何做。
(在使用新的Child1()时遇到麻烦)
最佳答案
如果Child1
应该引用“当前”类,即调用defaultInstance
的类,则可以
defaultInstance = new this();
这遵循正常的JavaScript规则:如果使用
Child1.defaultInstance()
调用该函数,则this
引用Child1
。但是,这可能无法满足您的要求。如果在基类上定义
defaultInstance
,则所有子类都共享相同的defaultInstance
变量。如果您希望每个类都有一个实例,则每个类都需要自己的
defaultInstance
方法,或者您需要使用一个属性,例如if (!this.__defaultInstance) {
this.__defaultInstance = new this();
}