2017-07-14 19 views
2

基本的なCRUD関数を処理できる親クラスを作成しようとしていますが、静的メソッドでコンストラクタを呼び出す方法を理解できません。、クラス名を使用せずにコンストラクタメソッドを呼び出す方法

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. 

答えて

1

以下に示すようあなたは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

おかげで、 –

関連する問題