ES6 class 来自字符串的实例
ES6 class instance from string
我尝试从字符串动态设置实例。我已经阅读了很多关于它的问题,但答案对我不起作用。
它说可以在名称前使用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
?还有其他想法吗?
只有全局变量会自动放入window
。
创建一个从 class 名称映射到 classes:
的对象
const classMap = {
"MyClass": MyClass,
"MyClass2": MyClass2,
...
};
然后使用 classMap[name](params)
而不是 window[name](params)
。
我尝试从字符串动态设置实例。我已经阅读了很多关于它的问题,但答案对我不起作用。
它说可以在名称前使用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
?还有其他想法吗?
只有全局变量会自动放入window
。
创建一个从 class 名称映射到 classes:
的对象const classMap = {
"MyClass": MyClass,
"MyClass2": MyClass2,
...
};
然后使用 classMap[name](params)
而不是 window[name](params)
。