在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);

+0

感谢,它的工作原理 –