1.两种方式
module.exports , exports
2.初始module.exports和exports指向的是同一块区域,其内容都是一个空对象
3.给对象赋值(module.exports 赋 引用类型数据)
3.1 module.exports
3.2 exports
3.3 同时赋值
此时,我们会发现导出的结果是{a:100},并不是{a:100,b:100}
4.给对象赋值(module.exports 赋 基本类型数据)
再同时赋值
此时,我们会发现导出的结果是{a:100,b:200}
5.推理分析
因此我们推理出,虽然初始module.exports和exports指向的是同一块区域,其内容都是一个空对象
但经过赋值后,未必还是同一个对象
如果赋值是基本类型数据,则还是同一个对象
如果赋值是引用类型数据,在堆中开辟新空间,本质上赋值赋的不是数据,而是堆地址。产生新对象,因此二者分开,不再是同一个对象。
在引入某模块时:以该模块代码中module.exports指向的内容为准。