扫码关注官方订阅号
看的书是《Node.js 开发指南》,问题如图:
这上面说exports是和module.exports指向同一个对象的变量,那么给exports赋值不就等于再给module.exports赋值了吗?为啥这里不可以呢?
光阴似箭催人老,日月如移越少年。
https://segmentfault.com/q/1010000000708989你需要知道二者区别!
简单的说,当前模块的导出对象总是指向module.exports,给它赋值什么当前模块就导出什么;
module.exports
然后Node里通过exports = module.exports使exports指向module.exports。
exports = module.exports
exports
如果你赋值给exports:exports = xxx,那么exports就不指向module.exports了。
exports = xxx
实际上,你写的模块代码是被Node封装成一个函数来调用的,即:
function (exports, require, module, __filename, __dirname) { ', // 你的代码在这里 }
exports、module是这个函数的参数。虽然exports和module.exports指向相同的对象,但是如果你直接修改module这个函数参数:
module
exports = xx;
很显然是没法达到目的的。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
https://segmentfault.com/q/1010000000708989
你需要知道二者区别!
简单的说,当前模块的导出对象总是指向
module.exports,给它赋值什么当前模块就导出什么;然后Node里通过
exports = module.exports使exports指向module.exports。如果你赋值给
exports:exports = xxx,那么exports就不指向module.exports了。实际上,你写的模块代码是被Node封装成一个函数来调用的,即:
exports、module是这个函数的参数。虽然exports和module.exports指向相同的对象,但是如果你直接修改module这个函数参数:很显然是没法达到目的的。