获取 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;