Javascript: использование переменной в качестве имени конструктора [duplicate]

1

Мне нужно взять параметр из другой функции, которая затем будет использоваться как имя конструктора для нового экземпляра объекта:

function foo(bar) {
    thing.push(new bar(arg1, arg2);
}

Как создать новый экземпляр объекта, который построен по значению bar, где bar - строка?

Теги:
constructor

2 ответа

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);
0
Use eval() if the string is cleaned of malicious code.
function foo ( bar ) { 
//code to check if bar is safe to use

//если он не очищает и не возвращает; eval ("вещь. push (новый" + bar + "(arg1, arg2);");} Это должно работать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню