nodejs中的module.exports和exports有什么区别

本文解释了Node.js中模块导出的原理,包括exports与module.exports的区别及联系。介绍了如何正确使用这两种方式来导出模块,以及在构造函数场景下的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

exports 变量是在模块的文件级别作用域内有效的,它在模块被执行前被赋予 module.exports 的值。

   简单的来说exports与module.exports的区别就是类似var name = obj.name = 'jack'的区别。

exports的值就是传的是module.exports的值的地址,后者改变,那么前者就跟着改变。

一般来说module.exports.f = ... 可以被更简洁地写成 exports.f = ...

 注意,就像任何变量,如果一个新的值被赋值给 exports,它就不再绑定到 module.exports,但是当 module.exports 属性发生改变时,也会重新赋值exports。

   简单来说,module.exports值发生改变,那么exports的值就会重新指向modules.exports.

 如果只是使用.来添加属性和方法,module.exportsexports混用是完全可以的

module.exports.age = 10 

exports.age = 10 

    对于为了直接使导出的内容作为类的构造器可以让调用者使用new操作符创建实例对象,应该把构造函数挂到module.exports对象上。

参考文章链接:https://www.cnblogs.com/wbxjiayou/p/5767632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值