0

我正在为每个组件使用不同的视图创建一个可视化构建器。所有视图都声明如下:

$(function() {
   var parallaxView = new Backbone.view.extend({
        ....
   });
   var parallaxView = new Backbone.view.extend({
        ....
   }); 
}); 

在某一时刻,我开始从该视图创建一个新的对象视图。但我只知道字符串代表对象中视图存储的名称

name

我的问题是我们能否以某种方式创建一个对象,例如使用该对象值作为类名的新类。

var myView = new name(param1, param2);

而不是使用

switch (name) {
   case 1:
      ....
}

我试过这个案例

var myView = new name(param1, param2);

我知道它不会炒锅。但是有什么方法可以以某种方式创建一个对象吗?

4

1 回答 1

2

如果我以正确的方式理解您的问题,您可以将视图构造函数存储在对象中,如下所示:

$(function() {
    window.views = {
        'parallax': Backbone.View.extend({ /*...*/ }),
        'test': Backbone.View.extend({ /*...*/ })
    };
});

然后你可以这样创建实例:

// var name = 'parallax';
var myView = new window.views[name](param1, param2);

如果您的问题不像我理解的那样,请告诉我。

于 2013-11-11T11:10:41.140 回答