我需要从另一个函数中获取一个参数,然后将该函数用作对象的新实例的构造函数的名称:
function foo(bar) {
thing.push(new bar(arg1, arg2);
}
如何创建一个由bar值构成的对象的新实例,其中bar是一个字符串?
答案 0 :(得分:1)
您可以传递构造函数。
var Bar = function (a1,a2) {
this.a1 = a1;
this.a2 = a2;
}
function foo(bar) {
var obj = new bar('arg1', 'arg2');
console.log(obj.a1);
console.log(obj.a2);
}
foo(Bar);

答案 1 :(得分:0)
Use eval() if the string is cleaned of malicious code.
function foo ( bar ) {
//code to check if bar is safe to use
//如果它没有清理或返回; eval(" thing.push(new" + bar +"(arg1,arg2);");} 这应该工作