获取 class 实例名称并使用它在 JS 中创建新实例
Getting class name of instance and using it to create new instances in JS
我有许多不同 class 的实例,我想 select 随机(比如 inst1
)中的任何一个并创建 class 的新实例selected 个实例(比如 cls1
)。
这就是我的实现方式:
// getting class name of selected instance (say inst1), i.e. clsName is cls1
let clsName = inst1.constructor.name;
// use the class name obtained above to create new instance
let newInst = new clsName();
但是它给我错误的说法;
“未捕获类型错误:clsName 不是 HTMLDocument 中的构造函数。”
有办法绕过吗?
claName
是字符串,不是函数。构造函数是inst1.constructor
,调用它。
class Test {
constructor() {
console.log("constructing a Test");
}
}
inst1 = new Test();
cls = inst1.constructor;
inst2 = new cls;
我有许多不同 class 的实例,我想 select 随机(比如 inst1
)中的任何一个并创建 class 的新实例selected 个实例(比如 cls1
)。
这就是我的实现方式:
// getting class name of selected instance (say inst1), i.e. clsName is cls1
let clsName = inst1.constructor.name;
// use the class name obtained above to create new instance
let newInst = new clsName();
但是它给我错误的说法; “未捕获类型错误:clsName 不是 HTMLDocument 中的构造函数。”
有办法绕过吗?
claName
是字符串,不是函数。构造函数是inst1.constructor
,调用它。
class Test {
constructor() {
console.log("constructing a Test");
}
}
inst1 = new Test();
cls = inst1.constructor;
inst2 = new cls;