当类型存储在变量中而不使用eval时,创建对象的实例

时间:2012-07-26 10:14:24

标签: javascript

我用javascript编写的一堆对象代表了高级可重用控件。这些控件放在某个页面中,作为带有type属性的div。选择这些很容易,但创建适当的javascript对象并将选定的节点传递给适当的类型init函数则不太直接。我试图避免在'new'+ controlType +'('+ selector +')'的行中构建一个字符串,然后在其上调用eval。

1 个答案:

答案 0 :(得分:3)

如果每个构造函数都是全局的,则可以通过window对象(全局对象)显式访问它们:

var instance = new window[controlType](selector):

否则我建议为构造函数

创建一个“命名空间”
var types = {
    'TypeA': TypeA,
    'TypeB': TypeB,
    //...
};

并按上述步骤操作。