nodejs中是否有一种方法可以使用变量类名实例化类对象。我正在尝试下面的代码片段,虽然它不起作用。
let className = "hello";
let object = new [className]();
EDITED 我有多个类,在那些多个类中,我将得到一个子集(String of String)作为来自另一个服务的输入,我必须调用那些子类的main函数。
// Multiple classes = ["first", "second", ..............., "twenty"];
let subset_class_names = ["first", "three", "five"];
for (let aClass of subset_class_names) {
let object = new [aClass]();
object.main();
}
答案 0 :(得分:1)
您可以使用窗口
尝试此操作var className = 'hello'
var obj = new window[className];
答案 1 :(得分:1)
为什么不迭代类本身而不是遍历类名呢?
class One {
constructor(){
console.log("One constructed");
}
}
class Two {
constructor(){
console.log("Two constructed");
}
}
const classes = [One, Two];
for(const aClass of classes)
new aClass();

答案 2 :(得分:0)
我认为当您知道如何使用数据结构时,大多数编程问题都会变得很容易。在这种情况下,您只需要一个Map
类名称即可。
class One {
constructor(){
console.log("One constructed");
}
}
class Two {
constructor(){
console.log("Two constructed");
}
}
class Three {
constructor(){
console.log("Three constructed");
}
}
const classes = new Map()
classes.set("one", One);
classes.set("two", Two);
classes.set("three", Three);
let subset_class_names = ["one", "two"];
for (let aClass of subset_class_names) {
const theClass = classes.get(aClass);
if (theClass) new theClass();
}