【发布时间】:2021-09-22 19:35:51
【问题描述】:
我编写了一个模块来包含我正在处理的大型 Javascript 代码库中一些不那么有趣的部分,称之为 boring.js。
它是从一个主模块导入的,它完成了大部分更有趣的工作,称之为main.js。
boring.js 中有一个类叫做Log,它被导出到main.js 并实例化为一个变量log。调用函数log.save(newLogMsg) 将newLogMsg 保存到文件中。
log.save(newLogMsg) 从main.js 调用时工作正常
当我尝试从位于boring.js 的函数内部调用log.save(newLogMsg) 时,我收到错误消息:
ReferenceError: log is not defined
这让我感到困惑,因为let log = new Log 在我调用驻留在导入模块中的相关函数(来自main.js)之前已在主模块中初始化。
附带问题:为什么我可以从我选择的任何模块中调用console.log(newLogMsg)?我该如何为我的 Log 类实现类似的功能?
【问题讨论】:
标签: javascript node.js module scope export