[英]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.