这个问题已经有了答案:
我尝试从字符串动态设置实例。我读过很多关于它的问题,但答案对我来说不起作用。
它说可以使用 window 在设置实例的名称之前。它不起作用。
window
class MyClass { // Something useful }
let params = {}; let name = 'MyClass'; let instance = new window[name](params);
我也试着做到这一点没有运气(抛出错误):
let instance = new window['MyClass'](params);
但是,这是可行的:
let instance = new MyClass(params);
为什么我不能使用 窗口 在这种情况下?还有其他想法吗?
窗口
只放入全局变量 window 自动地。
创建从类名映射到类的对象:
const classMap = { "MyClass": MyClass, "MyClass2": MyClass2, ... };
然后使用 classMap[name](params) 而不是 window[name](params) .
classMap[name](params)
window[name](params)