node 中 module.exports 与 exports 有什么区别
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇内容主要讲解"node 中 module.exports 与 exports 有什么区别",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"node 中 m
千家信息网最后更新 2025年12月04日node 中 module.exports 与 exports 有什么区别
module wrapper
本篇内容主要讲解"node 中 module.exports 与 exports 有什么区别",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"node 中 module.exports 与 exports 有什么区别"吧!
exports 是 module.exports 的引用,类似如下所示
const exports = module.exports
那如下结果会如何导出?
module.exports = 100
exports = 3
很显然会导出 100,毕竟 exports 进行了重指向。
「那在 node 源码中如何实现的呢?」 从源码里可以看出 「exports」 的实质
详见源码: https://github.com/nodejs/node/blob/master/lib/internal/modules/cjs/loader.js#L1252,可以看出符合猜想
众所周知,node 中所有的模块代码都被包裹在这个函数中
(function(exports, require, module, __filename, __dirname) {
exports.a = 3
});
而以下源码指出,exports 是如何得来
const dirname = path.dirname(filename);
const require = makeRequireFunction(this, redirects);
let result;
// 从这里可以看出来 exports 的实质
const exports = this.exports;
const thisValue = exports;
const module = this;
if (requireDepth === 0) statCache = new Map();
if (inspectorWrapper) {
result = inspectorWrapper(compiledWrapper, thisValue, exports,
require, module, filename, dirname);
} else {
// 这里是模块包装函数
result = compiledWrapper.call(thisValue, exports, require, module,
filename, dirname);
}到此,相信大家对"node 中 module.exports 与 exports 有什么区别"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
源码
内容
函数
实质
模块
学习
实用
更深
众所周知
代码
兴趣
实用性
实际
指向
操作简单
方法
更多
朋友
结果
网站
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
口碑好的服务器代理哪家好
服务器死亡不掉落指令
修改为数据库的关键字
如何知道自己手机的服务器
分布式存储三副本最少几台服务器
斗罗大陆我的世界服务器最强斗罗
软件开发工程师c需要学什么
网络安全科室
三级网络技术破解版安装教程
网络安全主题班队会简报
服务器的功效
电脑网络安全壁纸
网络安全黑板报简单头像
海康视频服务器配置
软件开发项目的生产条件
yii2 数据库添加
国税网络安全宣传活动方案
什么是软件开发外包公司
网络安全模式中怎么没有声音
软件开发部门代表发言
中国移动做通信网络技术
数据库引擎链接失败
如何知道自己手机的服务器
文件服务器如何管理文件
网络安全设计范围
泸州网络安全咨询电话
手机请求服务器被拒绝
网络技术软件打不开
软件开发实用技能
服务器电源转速无故升高