[英]How to access the context of imported modules in ES6?
我可能混用了我的术语,但是以可以通过window
访问全局上下文的相同方式,我想访问导入模块的当前上下文。
为了给出我正在做的简单示例,假设我们有一个名为MyClasses.js
的文件,其中包含以下两个类:
export class MyClass1 {}
export class MyClass2 {}
然后,我们将上述类导入到名为main.js
的文件中
import {MyClass1, MyClass2} from './MyClasses'
在main.js
我可能基于一些属性值构造每个类的新实例。
function main()
{
const config = { case1: 'MyClass1', case2: 'MyClass2', case3: 'MyClass1' };
const myPropValue = 'case3';
const constructorName = config[myPropValue];
const myClass = new context[constructorName](); // MyClass1
}
这是一个基本示例,但是在存在许多类和构造此类的案例的情况下,我想映射关系,而不是依赖复杂的if / else逻辑。
一种解决方案是将导入的类附加到window
上下文...
window.MyClass1 = MyClass1;
window.MyClass2 = MyClass2;
...并从那里构造我的类的实例:
const myClass = new window[constructorName](); // valid construction
但是我想避免将它们绑定到全局范围。 是否有任何导入模块的默认上下文,还是我需要自己设置上下文?
只需修改您的导入,您就可以了:
import * as MyClasses from './MyClasses';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.