node中exports 和 module.exports区别

主要区别:

1、module.exports 初始值为一个空对象 {};
2、exports 是指向的 module.exports 的引用;
3、require() 返回的是 module.exports 而不是 exports;

node会在运行时自动给模块文件添加两个属性:exports和module.exports;
开始时他们都指向同一个空对象:


image.png
image.png

改变exports的指向:


image.png
image.png

所以说exports和module.exports并没有什么联系,只是开始时指向的是同一个对象!
require引入模块时引入的是module.exports;

image.png
image.png
image.png

我们可以看到这样的写法:

exports = module.exports = {...}

上面的写法等价于

module.exports = {...};
exports = module.exports;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分...
    MapleLeafFall阅读 1,207评论 0 0
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,652评论 2 41
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宫若石阅读 1,156评论 0 1
  • 【转】 遵循的模块化规范不一样 模块化规范:即为 JavaScript 提供一种模块编写、模块依赖和模块运行的方案...
    houruyaogeili阅读 3,340评论 0 2
  • 一位朋友准备装修,跑来问我,该如何准备装修。她给我看了五花八门的各种网络装修图片,觉得都好,不知道如何选择;她又接...
    晓蕊的世界阅读 375评论 1 3