当前位置: 首页 > 后端技术 > Node.js

module.exports和exports

时间:2023-04-03 23:55:22 Node.js

module.exports和exports本质上,exports是对module.exports对象的引用JS引用vara={x:"2"};变量b=a;控制台日志(一);//{x:'2'}console.log(b);//{x:'2'}b.x=3;console.log(a);//{x:3}console.log(b);//{x:3}b={x:1};控制台日志(一);//{x:3}console.log(b);//{x:1}console.log(module.exports===exports);//true变量a是对象,b是a的引用(a和b指向同一块内存),所以修改原对象后输出相同的b,因为a和b指向同一块内存内存,所以修改会体现在a.当b被覆盖时,b指向一块新的内存;而a点不变,所以不同的输出modules.exports和exports的区别module.exports的初始值为一个空对象{}exports是moduleA对.exports对象的引用。require()的返回值是module.exports对象,而不是exports。重置module.exports或exports。当指向一个新的对象时,两者之间的引用关系就会被打破。使用下面两种写法同理,module.exports指向一个新的对象,断开两者之间的连接然后使用exports=module.exports让exports指向新的对象,恢复两个exports=module.exports={...};/**module.exports={...};*exports=module.exports;*/