exports 与 module.exports区别

一.

 1. module.exports初始值是一个空对象

 2. exports 是指向 module.exports的引用

 3. require()返回的module.exports而不是 exports

二.

  系统自动给nodejs 文件增加2个变量 exports 和 module, module 又有一个属性 exports, 这个exports 属性指向一个空对象 {}; 同时 exports这个变量也指向了这个空对象{};

  于是就有了 exports => {} <=module.exports.

  这2个exports 其实是没有直接关系的,唯一的关系是: 他们初始都指向同一个空对象{}; 如果其中一个不指向做个空对象了, 那么他们的关系就没有了.

三.

 require()的对象和module.exports都是指向同一个对象,require相当于是指针拷贝,即引用拷贝,不是值拷贝

原文地址:https://www.cnblogs.com/fewhj/p/9366882.html