Javascript 如何从变量CoffeScript初始化类

Javascript 如何从变量CoffeScript初始化类,javascript,coffeescript,Javascript,Coffeescript,如何从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 @[ke

如何从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
Peter Lyons的答案对我们班级的定义进行了一些调整。简言之,解决方案是:

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

您只需要在正确的范围内使用方括号查找类名。在浏览器中,您可以执行
newwindow[className]
,如果您的类位于模块中,则可以执行
newrequire('./models')[className]

节点版本似乎不起作用。获取的错误是“类型错误:对象函数域(obj){var key,value;for(obj中的key){if(!\uu hasProp.call(obj,key))continue;value=obj[key];this[key]=value;}}}没有方法“Domain”起作用的是:DomainClass=require('./model')newLine newDomain=newdomainclass({..})