如何动态实例化类

时间:2014-04-22 12:55:50

标签: javascript oop

我有一个包含构造函数var arr = ['Class1', 'Class2', 'Class3']名称的数组。

function Class1() {
     this.name = 'class1';
}

是否可以动态创建这些类的实例?我的意思是

var class1Object = new arr[0]();

我尝试过但它不起作用(Uncaught TypeError:string不是函数)。

2 个答案:

答案 0 :(得分:2)

在" global"中定义的函数范围实际上是在window对象上创建的,因此您可以执行此操作(只要代码位于页面的head中,并且不限于特定的内容):

function Class1(){
    this.name = 'class1';
}

var className = "Class1";
var c1 = new window[className]();

实例:http://jsfiddle.net/vdf4W/

答案 1 :(得分:0)

之前在这篇文章中回答过(Google:JavaScript中的动态实例化)

Dynamic Instantiation In JavaScript