Как в JS динамически создать объект нужного Класса, если имя Класса указано в переменной?
class Class1 { }
class Class2 { }
class Class3 { }
className = 'Class1';
// Как динамически создать объект нужного Класса, если имя Класса указано в переменной className?
Ответы (1 шт):
Автор решения: Вячеслав Ильинский
→ Ссылка
Вы можете сделать это динамически через eval, который выполняет код из строки
class Class1 { }
class Class2 { }
class Class3 { }
const className = 'Class1';
console.log(eval(`new ${className}()`) instanceof Class1);
Но будет проще, если классы находятся в переменной. Например вот так
const classList = {
'Class1': class {},
'Class2': class {},
'Class3': class {},
};
const className = 'Class1';
console.log(new classList[className]() instanceof classList.Class1);