时间:2021-05-26
Node.js 引入了模块(Module)概念,一个模块可以通过module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过require() 函数引入并使用。
module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {},exports 是指向的 module.exports 的引用,在模块内部大概是这样:
举个栗子,在node.js中创建模块非常简单,一个文件就是一个模块,所以我们创建一个name.js文件就创建了一个模块name.js,使用exports和require对象对外提供接口和引用模块。
name.js
这样在使用的时候需要这样
app.js
var name=require('./name');如果我们创建的name.js文件是使用module.exports和require对象对外提供接口和引用模块。
name.js
app.js
var name=require('./name');exports 赋值其实是给 module.exports 这个空对象添加myName属性而已,为什么exports要使用添加属性的方式,而不用exports=myName?
exports是引用 module.exports的值。exports 被改变的时候,module.exports不会被改变,而模块导出的时候,真正导出的执行是module.exports,而不是exports。
如果将name.js改为
var myName=function(){var name='AmberYLopez';console.log(name);};exports=myName;app.js
var name=require('./name');<br>console.log(name);运行会报错。因为,前面是通过给 exports 添加属性,而现在对 exports 指向的内存做了修改,exports 和 module.exports 不再指向同一块内存,即 module.exports 指向的那块内存并没有做任何改变,仍然为一个空对象 {},所以会报错。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
我们只需知道三点即可知道exports和module.exports的区别了:1.exports是指向的module.exports的引用2.module.ex
require用来加载代码,而exports和module.exports则用来导出代码。但很多新手可能会迷惑于exports和module.exports的区
本文实例讲述了seaJs使用心得之exports与module.exports的区别。分享给大家供大家参考,具体如下:1.exports是module.expo
node的导出与导入1.node的导出语法 varpath={} module.exports=path2.node的导入语法constpath=requi
(1)在index.html文件中引入百度地图(2)在webpack.base.conf.js文件内添加external选项,在module.exports内部