gpt4 book ai didi

javascript - ES6中如何访问导入模块的上下文?

转载 作者:行者123 更新时间:2023-11-28 17:43:10 24 4
gpt4 key购买 nike

我可能混淆了术语,但就像我可以通过窗口访问全局上下文一样,我想访问导入模块的当前上下文。

举一个简单的例子来说明我正在做的事情,假设我们有一个名为 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

但我想避免将它们绑定(bind)到全局范围。任何导入的模块是否有默认上下文,还是我需要自己设置上下文?

最佳答案

只需修改您的导入即可:

import * as MyClasses from './MyClasses';

关于javascript - ES6中如何访问导入模块的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47436499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com