我想从基类中的静态方法创建子类的实例
class Base {
static find(id) {
const attributes = database.get(id);
return new getChildClass(attributes);
}
}
class FirstChild extends Base {
}
class SecondChild extends Base {
}
我要FirstChild.find(1)
返回 FirstChild
的实例和
SecondChild.find(1)
返回 SecondChild
的实例
可以在 Node JS 中实现这一点吗?
最佳答案
当从子类调用find
时,find
内的this
将引用该子类,因此您只需返回从
:find
中新建此
class Base {
static find(id) {
const attributes = 'foo'; // database.get(id);
return new this(attributes);
}
}
class FirstChild extends Base {
}
class SecondChild extends Base {
}
console.log(FirstChild.find(1) instanceof FirstChild);
console.log(SecondChild.find(1) instanceof SecondChild);
关于javascript - 是否可以从基类[node JS]中的静态方法实例化子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55347956/