它是否与模块缓存视角有何不同?

时间:2017-05-13 22:21:13

标签: node.js module

我试图了解模块缓存。我已经阅读了很多材料,但它仍然模糊不清,因为我找不到一篇完整细节的好文章,并且网上有一些相反的意见。

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');

这两个在缓存方面有什么不同(两者都以相同的方式导出)?

1 个答案:

答案 0 :(得分:1)

  

它与模块缓存的角度有什么不同吗?

不,在任一场景中加载两个模块的方式没有区别。首次运行此父模块时,两者都为require(),因此时间没有差异,加载的模块不会知道差异。

  

这两个在缓存方面有什么不同(两者都以相同的方式导出)?

缓存没有区别。这两个模块都将在两种情况下进行缓存。

const声明存在差异。在您的第一个中,仍然可以分配modules.firstmodules.second。只有modules变量本身才是const。因此,您无法modules = {some other object},但您可以重新分配该对象的各个const.firstconst.second属性。

在您的第二个代码示例中,firstsecond都是const,无法重新分配。