Javascript实例化具有变量名称的对象

时间:2013-10-03 20:53:14

标签: javascript javascript-objects

我有一个非常直截了当的问题,但我似乎无法在任何地方找到解决方案......

基本上我想实例化一个新的Javascript对象,但类名是一个变量。在PHP中,实现非常简单new $className()。我在Javascript中尝试了以下解决方案,但没有运气:

window.onload=function(){
function obj(){
    this.show = function(){
        console.log('Hallo World');
    }
}

var objs = ['obj'];

new objs[0]().show();
} 

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

如图所示,如果没有eval,则无法执行此操作。

如果您愿意更改它,您可以:

window.onload=function(){
    var things = {
        obj: function(){
            this.show = function(){
                console.log('Hallo World');
            };
        }
    };

    new things['obj']().show();
    // Or: new things.obj().show();
};

答案 1 :(得分:1)

这会对你有所帮助:

var creator = {
    obj : function (){
        this.show = function(){
        console.log('Hallo World');
        };
    }
}
var myInstance = new creator['obj'];
myInstance.show();

我们的想法是将构造函数定义为属性。