CommJs中的module.exports 和 exports 和 ES6 中的 export 和 export default 之间的区别

本文探讨了Node.js中的module.exports和exports的区别,强调了它们之间的关系以及require()如何加载模块。同时,介绍了ES6的export和export default,包括命名导出和默认导出的用法。当使用exports时,应注意避免重新赋值以保持与module.exports的链接。而在ES6中,export default允许单一默认导出,导入时可以自由命名。
摘要由CSDN通过智能技术生成

module.exports 和 exports

这两个是属于 Node.js中的导出模块的方法
1. exports 是 module.exports 的一个引用
2. require()返回的是module.exports而不是exprots 因为他们之间指向的是堆中的同一块内存, 所以这两种导出方式都可以使用
3. module.exports 默认是一个空对象{},如果 exprots 被赋值为一个新的对象的话,它会和 module.exports 失去连接关系,从而require()加载不到导出的东西

module.exports

module.exports属性表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。

exports

为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令 var exports= module.exports。

如果使用exports导出模块的话,只能为exports对象添加方法或者属性,不能将其重新赋值,重新赋值就会切断与module.exports的联系!! 如果给exports添加了属性或方法,module.exports也不能重新赋值,如果重新赋值,就改变了引用关系,之前和exports引用的关系改变了,所以exports加进去的方法也不会导出,因为每个模块require()加载的都是module.e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值