我们如何使用javascript对象中的字符串名称存储创建Backbone视图的实例?

时间:2013-11-11 10:54:48

标签: javascript backbone.js constructor backbone-views

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

$(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);

我知道它不会炒锅。但有没有办法可以像这样创建一个对象?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

如果您的问题不符合我的理解,请告诉我。