从 class name as string 创建 class 实例并传入参数

create class instance from class name as string and pass in argument

字符串 我正在尝试 实例化 class (我的 marionette 视图)。我找到了一种可行的方法,但这种方法存在一个问题,即我实际上无法将参数传递给实例化的 class。 似乎当我调用 typeMapping[viewType] 它实际上是在返回我 Show.OneNode() 而不仅仅是 Show.OneNode

  class Show.TwoNode extends App.ItemView
    template: "templates/two"
  class Show.OneNode extends App.ItemView
    template: "templates/one"

  class Show.Layout extends App.Layout
    onShow: =>
         typeMapping = {
           one: Show.OneNode
           two: Show.TwoNode
         }
         viewType = "one"      
         view = new typeMapping[viewType]
           model: @model

再次强调,我宁愿将此作为评论,但这就是生活。您是否尝试过将 key/value 对中的值用引号括起来以将它们强制为字符串?

typeMapping = {
  one: "Show.OneNode",
  two: "Show.TwoNode"
}