nodejs 中有没有办法用变量类名实例化类对象。我正在尝试下面的代码片段,但它不起作用。
let className = "hello";
let object = new [className]();
编辑我有多个类,在这些多个类中,我将从另一个服务获得一个子集(字符串数组(作为输入,我必须调用这些子集类的 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();
}
与其遍历类名,为什么不遍历类本身呢?
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();
您可以使用窗口尝试此操作
var className = 'hello'
var obj = new window[className];
我认为当你知道如何使用数据结构时,大多数编程问题都会变得容易。在这种情况下,您所需要的只是类名与类本身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();
}