【问题标题】:How to make the export functions global after an import() call in JavaScript如何在 JavaScript 中的 import() 调用后使导出函数成为全局函数
【发布时间】:2020-06-30 22:16:28
【问题描述】:

所以我们在 JavaScript 中有这个函数:

// main.js
import('./module.js');

然后我们有了模块文件:

// module.js
export function SomeFunctionA() {
}
  
export function SomeFunctionB() {
}

是否可以使用 import() 调用并使模块中的所有“导出”函数全局可用?我在 Webpack 上看到了一些文章。请不要使用 Webpack 或任何附加库来完成这项工作。

【问题讨论】:

  • 你是想用一个 import 语句导出这两个函数还是在谈论范围?
  • 更多地谈论范围。模块导入完成后,我希望 main.js(全局)中的任何函数都能够访问它们而无需自己再次进行导入。
  • 我的第一个想法是,你只能通过附加到窗口来实现这一点。似乎经过一番自我搜索之后,情况似乎就是这样。参考:stackoverflow.com/a/52484429/6254263
  • 啊..有趣。我会多阅读那篇文章,看看它是如何完成的。谢谢。

标签: javascript import module global


【解决方案1】:

导入返回一个承诺,所以你可以这样做:

// main.js
var bob = import ('./module.js');
bob.then((mod) => {
    console.log(mod);
    for(var prop in mod){
        // maybe a little nicer to check hasOwnProperty?
        // but you get the idea for brevity
        window[prop] = mod[prop];
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2016-03-14
    相关资源
    最近更新 更多