Javascript用变量名实例化对象

Javascript用变量名实例化对象,javascript,javascript-objects,Javascript,Javascript Objects,我有一个非常直截了当的问题,但是我似乎在任何地方都找不到解决方案 基本上我想实例化一个新的Javascript对象,但类名是一个变量。在PHP中,实现非常简单new$className()。我用Javascript尝试了以下解决方案,但运气不佳: window.onload=function(){ function obj(){ this.show = function(){ console.log('Hallo World'); } } var objs =

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

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

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

var objs = ['obj'];

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

有人知道如何做到这一点吗?

有了如图所示的代码,没有
eval
您就无法做到这一点

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

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

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

使用如图所示的代码,如果没有
eval
,则无法执行此操作

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

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

    new things['obj']().show();
    // Or: new things.obj().show();
};
这是否有助于您:

var creator = {
    obj : function (){
        this.show = function(){
        console.log('Hallo World');
        };
    }
}
var myInstance = new creator['obj'];
myInstance.show();
我们的想法是将构造函数定义为属性。

这将帮助您:

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

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

的可能重复项可能重复项没有看到您的答案并发布了相同的内容…无论如何,这是正确的。没有看到您的答案并发布了相同的内容…无论如何,这是正确的。