Node.js 中exports 和 module.exports 的区别
网络编程 2021-07-04 19:20www.168986.cn编程入门
这篇文章主要介绍了Node.js 中exports 和 module.exports 的区别的相关资料,需要的朋友可以参考下
Node.js 中exports 和 module.exports 的区别
require 用来加载代码,而 exports 和 module.exports 则用来导出代码。但很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 exports 和 module.exports 的关系,我们先来巩固下 js 的基础。示例
test.js
var a = {name: 1}; var b = a; console.log(a); console.log(b); b.name = 2; console.log(a); console.log(b); var b = {name: 3}; console.log(a); console.log(b);
运行 test.js 结果为
{ name: 1 } { name: 1 } { name: 2 } { name: 2 } { name: 2 } { name: 3 }
解释a 是一个对象,b 是对 a 的引用,即 a 和 b 指向同一块内存,所以前两个输出一样。当对 b 作修改时,即 a 和 b 指向同一块内存地址的内容发生了改变,所以 a 也会体现出来,所以第三四个输出一样。当 b 被覆盖时,b 指向了一块新的内存,a 还是指向原来的内存,所以两个输出不一样。
明白了上述例子后,我们只需知道三点就知道 exports 和 module.exports 的区别了
- module.exports 初始值为一个空对象 {}
- exports 是指向的 module.exports 的引用
- require() 返回的是 module.exports 而不是 exports
现在我们来看 Node.js 官方文档的截图:
我们经常看到这样的写法
exports = module.exports = somethings
上面的代码等价于:
module.exports = somethings exports = module.exports
原理很简单,即 module.exports 指向新的对象时,exports 断开了与 module.exports 的引用,那么通过 exports = module.exports 让 exports 重新指向 module.exports 即可。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇:基于React实现表单数据的添加和删除详解
下一篇:JS检测数组类型的方法小结
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程