我需要循环创建一个新的类对象,在其中可以提供此类的动态名称,例如我有“树”课:
export default class ParentClass {
// ...
}
export default class Thomas extends ParentClass {
// ...
}
export default class Paul extends ParentClass {
// ...
}
并循环:
const workers = ['Thomas', 'Paul'];
for (const worker of workers) {
const h = new <worker>();
// do something with this object
}
是否可以这样做?使用NodeJS和Express.js进行项目。
答案 0 :(得分:2)
这是可能的,您可以将类构造函数直接放在数组中:
const workers = [Thomas, Paul];
for (const workerConstructor of workers) {
const h = new workerConstructor();
// do something with this object
}
或者,将它们放在地图中,以便您可以使用字符串键访问它们:
const classMap = {
'Thomas': Thomas,
'Paul': Paul
}
const workers = ['Thomas', 'Paul'];
for (const workerKey of workers) {
const h = new classMap[workerKey]();
// do something with this object
}
答案 1 :(得分:0)
您可以执行以下操作:
const workers = ['Thomas', 'Paul'];
for (const worker of workers) {
let c;
eval("c=new "+worker+"()");
// do something with this object
}