我试图了解模块缓存。我已经阅读了很多材料,但它仍然模糊不清,因为我找不到一篇完整细节的好文章,并且网上有一些相反的意见。
const modules = {
first: require('./modules/first.js'),
second: require('./modules/second.js')
};
// vs
const first = require('./modules/first.js');
const second = require('./modules/second.js');
这两个在缓存方面有什么不同(两者都以相同的方式导出)?
答案 0 :(得分:1)
它与模块缓存的角度有什么不同吗?
不,在任一场景中加载两个模块的方式没有区别。首次运行此父模块时,两者都为require()
,因此时间没有差异,加载的模块不会知道差异。
这两个在缓存方面有什么不同(两者都以相同的方式导出)?
缓存没有区别。这两个模块都将在两种情况下进行缓存。
const
声明存在差异。在您的第一个中,仍然可以分配modules.first
和modules.second
。只有modules
变量本身才是const
。因此,您无法modules = {some other object}
,但您可以重新分配该对象的各个const.first
和const.second
属性。
在您的第二个代码示例中,first
和second
都是const
,无法重新分配。