在javascript中es6,如何在不使用类名称的情况下调用构造方法?
问题描述:
我想创建一个父类,可以处理基本的CRUD函数,但我无法弄清楚如何在静态方法中调用构造函数。在javascript中es6,如何在不使用类名称的情况下调用构造方法?
class Model {
static find(id) {
var attrs = someDBcalls();
var obj = new CurrentClass(attrs); // how?
return obj;
}
}
class User extends Model {
constructor(attrs){
// initialize class.
}
}
User.find(1); // shall return an User object.
答
您可以使用var obj = new this(attrs);
如下证明:
function someDBcalls(id) {
return { id, success: true };
}
class Model {
static find(id) {
var attrs = someDBcalls(id);
var obj = new this(attrs);
return obj;
}
}
class User extends Model {
constructor(attrs) {
super();
// initialize class.
console.log(attrs);
}
}
var user = User.find(1); // shall return an User object.
console.log(user instanceof User);
感谢,它的工作原理 –