大佬教程收集整理的这篇文章主要介绍了Node.js模块导出exports 和 module.exports 的区别,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
每一个node.js执行文件,都自动创建@L_323_0@module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {}
exports和module.exports指向同一块内存,但require()返回的是module.exports而不是exports。
给 exports 赋值其实是给 module.exports 这个空对象添加了两个属性而已,上面的代码相当于:
先来看下exports和module.exports的使用
使用exports
app.js
@H_403_108@log.js
使用module.exports
log.js
上述两种用法都没问题,但如果这样使用
前面的例子中给 exports 添加属性,只是对 exports 指向的内存做了修改。而上例则是对exports指向的内存进行了覆盖,使exports指向了一块新的内存,这样,exports和module.exports指向的内存并不是同一块,exports和module.exports并无任何关系。exports指向的内存有了变化,而module.exports指向的内存并无变化,仍为空对象{}。
报错信息。
再看下面的例子
app.js
init.js
= {a: 2} exports.a = 1运行app.js会有输出
这也就是module.exports对象不为空的时候exports对象就自动忽略,因为module.exports通过赋值方式已经和exports对象指向的变量不同了,exports对象怎么改和module.exports对象没关系了。
= exports = somethings等价于
以上是大佬教程为你收集整理的Node.js模块导出exports 和 module.exports 的区别全部内容,希望文章能够帮你解决Node.js模块导出exports 和 module.exports 的区别所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。