2013-05-28 26 views
0

如何從CoffeScript中的變量啓動類?換句話說:如何從變量CoffeScript啓動類

className = 'Domain' 
domain = new className() 

should.exist(domain) 
'Domain'.should.equal(domain.constructor.name) 

第二行應該如何滿足斷言?謝謝

編輯: 類被聲明爲以下

class Domain 
    constructor: (obj) -> 
    for own key, value of obj 
     @[key] = value 

    save: (fn) -> 
    self = @ 
... 
module.exports = Domain 

彼得·萊昂斯的回答帶着些許調整,我們的類中定義的方式工作。總之,解決方案:

DomainClass = require('./index') 
newDomain = new DomainClass({...}) 

回答

2

你只需要在正確的範圍內使用方括號來查找類名稱。在瀏覽器中,你可以做new window[className]或在節點中,如果你的班級在模塊中,你可以做new require('./models')[className]

+0

節點版本似乎沒有工作。得到的錯誤是'TypeError:Object function Domain(obj)var key,value; (key_obj){ if(!__ hasProp.call(obj,key))continue; value = obj [key]; this [key] = value; } }沒有方法'Domain' – latvian

+0

What's worked:DomainClass = require('./ model')newLine newDomain = new DomainClass({..}) – latvian

+0

謝謝Peter – latvian