2016-11-23 42 views
0

我的意思不是類的名稱作爲字符串,我需要完全靜態的實例。如何從ecma 6中的'this'獲得'instance'(class)

class Secret { 

    createNewClassFromConstructorName() 
    { 
     let className = this.constructor.name; 

     return new className(); 
    } 
} 


let secret = new Secret(); 

但我不希望創建像「this.self =祕密或this.instance =祕密」或返回實例方法的一些屬性。我想從'this'語句訪問它們。並運行此方法:

secret.createNewClassFromConstructorName(); 

當'className'不是構造函數時,我得到錯誤。

+0

我需要它,因爲我有動態類實例。 – wickd

+0

那麼,'.name'是一個名稱字符串,而不是一個類。你爲什麼訪問它?只需使用'var clas = this.constructor'。 – Bergi

+0

是。其作品。謝謝) – wickd

回答

0

只需使用constructor屬性作爲構造函數!

createNewClassFromConstructorName() { 
    return new this.constructor; 
} 
+0

謝謝你。是工作 :) – wickd