浅谈node中的exports与module.exports的关系

发布时间 - 2026-01-11 02:35:52    点击率:

因为是做前端的,对node的生态一直也比较关注,对于node中对commonJS模块化的实现给了我们很大的方便,之前对于导出的module.exports和exports一直模模糊糊,今天做一个整理

先来个js基础部分的复习

let obj1 = {}
let obj2 = obj1
obj2.a = 'a'
obj1.b = 'b'
console.log(obj1) //{a: 'a', b: 'b'}
console.log(obj2) //{a: 'a', b: 'b'}
obj2 = {}
console.log(obj2) //{}
console.log(obj1) //{a: 'a', b: 'b'}

obj1先指向内存中的一个区块,然后将obj1指向内存区块的引用传递给了obj2,那么这时obj1和obj2都指向了内存中的同一个区块,所以无论是通过obj1还是obj2向这块内存中加入属性,都会同时反应在obj1和obj2的身上,这时候obj2切断了与原先内存块的联系,指向了新的内存块,而obj1还是指向最先的内存区块,这时他们就各自管理各自的内存区块

现在看看module.exports和exports的关系

如图最开始的时候module.exports和exports都指向同一块内存区域,红线包含的区域,其中module.exports指向的区域用灰色填充


初始

现在我们导出为module.exports = {a: "a"},那么module.exports切断与原来的红色线包围的内存块,指向新的内存块还是灰色填充的内存块,如图



导出module.exports

或者是我们导出为exports = {a: "a"},那么exports切断与原来的红线包含的内存块,指向新的内存块,如图


导出为exports

重要的是我们通过require导入的永远都是module.exports,即图中灰色填充的内存块,而不是红色线条的最初始的内存块,所以无论我们在导出的时候是用module.exports还是exports只要保证导出的内容是挂载在灰色内存块上都是可行的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# node  # module.exports  # nodejs中exports  # Node.js学习教程之Module模块  # vue中node_modules中第三方模块的修改使用详解  # 深入理解Node module模块  # nodejs中exports与module.exports的区别详细介绍  # node.js中module.exports与exports用法上的区别  # NodeJS学习笔记之Module的简介  # 深入理解node exports和module.exports区别  # node中modules.exports与exports导出的区别  # 详解Node.js中exports和module.exports的区别  # Node.js 中exports 和 module.exports 的区别  # node.js中module模块的功能理解与用法实例分析  # 如图  # 给了  # 的是  # 都是  # 或者是  # 做一个  # 应在  # 这块  # 来个  # 中对  # 图中  # 大家多多  # 永远都是  # 而不是  # 这时候  # br  # pre  # js  # exports 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站图片在线制作软件,怎么在图片上做链接?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  高端云建站费用究竟需要多少预算?  香港服务器WordPress建站指南:SEO优化与高效部署策略  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  音乐网站服务器如何优化API响应速度?  bing浏览器学术搜索入口_bing学术文献检索地址  青岛网站建设如何选择本地服务器?  如何在阿里云ECS服务器部署织梦CMS网站?  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  香港服务器网站卡顿?如何解决网络延迟与负载问题?  深圳网站制作的公司有哪些,dido官方网站?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel怎么在Blade中安全地输出原始HTML内容  文字头像制作网站推荐软件,醒图能自动配文字吗?  EditPlus中的正则表达式实战(5)  详解Android图表 MPAndroidChart折线图  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  EditPlus中的正则表达式 实战(1)  如何确保FTP站点访问权限与数据传输安全?  在centOS 7安装mysql 5.7的详细教程  微信小程序 wx.uploadFile无法上传解决办法  音响网站制作视频教程,隆霸音响官方网站?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  高防服务器租用指南:配置选择与快速部署攻略  如何在不使用负向后查找的情况下匹配特定条件前的换行符  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  企业网站制作这些问题要关注  高端建站三要素:定制模板、企业官网与响应式设计优化  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  高防服务器租用首荐平台,企业级优惠套餐快速部署  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在阿里云高效完成企业建站全流程?  如何正确选择百度移动适配建站域名?  JavaScript如何实现路由_前端路由原理是什么  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  如何在Windows环境下新建FTP站点并设置权限?  如何用花生壳三步快速搭建专属网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧