理解exports和module.exports,就这么简单

本文旨在简化exports和module.exports的理解,避免复杂的地址介绍。总结来说,exports、module、require是Node.js在执行前预先声明的变量。module.exports是初始对象,exports是其引用,require用于导入模块。通过代码示例展示了它们的用法和关系,帮助读者直观理解这三个核心概念。
摘要由CSDN通过智能技术生成

前言

exports和module.exports有这么难理解吗?有些教育机构用地址介绍这两个东西,还介绍得特别乱,把整个学习成本都提上去了。

来看看某教育机构的介绍:
在这里插入图片描述
是不是特别乱?反正我不想看,也不想通过这个地址来看懂。

这篇文章目的不再揭露node的行为,而是为了让大家便于理解。请不要抱着理解node的思想去看这篇文章(因为连我现在都还没接触到node本质性的知识),而是抱着理解exports、module、require这些东西的本质而去阅读。

提前说总结

由于有些人悟性比较好,或者javascript基础较扎实,我觉得有必要提前说下总结,避免看到文章后面说一句——“就这?废话了这么多?”。当然,理解能力差的同学还是建议你跳过这一段,直接看证明过程。

其实,exports、module、require无非就是三个变量而已,什么地址的,无非就是javascript顺带的东西,只要你javascript够熟悉,何须去理解它这些地址的变换。

这三个变量,是node执行你的代码前,默默帮你声明并赋值的三个变量,node是怎么帮你声明并赋值的呢,我推导了一下,大概是这样的:

// 声明module
var module = {
   
  exports: this // module.exports指向的是全局的this对象,不信你自己打印一下是否完全相等
}
// 声明exports
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值