模块导出新实例

Module.export-ing a New Instance

本文关键字:实例 新实例 模块      更新时间:2023-09-26

如果我像这样将对象附加到节点中的module.exports对象:

module.exports = new Object()

我的应用程序中的每个object = require('./Object')是创建该对象的新实例,还是会创建对一个实例的引用?

require()缓存它执行的文件。

第一次require('./Object') 时,它将运行您的代码并将导出的对象放在require.cache中。
后续调用将立即返回缓存的对象。

你可以自己从缓存中删除你的模块,或者使用一个getter,但这些都是坏主意。

查看节点文档中的缓存注意事项。 只要解析的模块路径匹配,您就会得到相同的对象。 此答案中有一个示例,说明何时解析的路径不匹配。