说明
导出模块就是导出对象,export和module.exports两者区别:
- export是设置导出模块对象的指定属性
- module.export既可以设置导出模块的所有属性,又可以设置导出模块的指定属性。
预备知识:空文件导出
假如建立一个空白的js文件,并通过require方式加载该文件。
通过console.log的方式可以看出,该模块是一个空的json对象。
重新声明
exports 就是为空文件导出的模块对象增加属性。
module.exports 既可以为导出模块增加属性,又可以统一设置属性。
类比
let jQuery = {}
jQuery.ajax = function() {...}
exports使用方式
exports.func = str => console.log(str)
exports.test = str => console.log(str)
module.exports使用方式
module.exports = {
func: str => console.log(str)
}
module.exports = {
test : str => console.log(str)
}
步骤
- 创建demo01.js,写入exports代码
- 创建demo02.js,写入module.exports代码
- 创建demo03.js,不写入任何代码
- 创建index.js,写入调用代码
代码
exports.func = str => console.log(str)
exports.test = str => console.log(str)
module.exports = {
func: str => console.log(str)
}
module.exports = {
test: str => console.log(str)
}
const demo01 = require('./demo01')
const demo02 = require('./demo02')
const demo03 = require('./demo03')
demo01.func('I\'am demo01.func')
demo01.test('I\'am demo01.test')
console.log(demo01)
demo02.test('I\'am demo02.test')
console.log(demo02)
console.log(demo03)
总结
当导出模块的时候,如果什么代码都不写,返回的是空json对象;
如果用exports写,那么exports每调用一次,只能设置返回模块的指定属性;
如果用module.exports写,那么即可以设置返回模块的整个对象,也可以设置返回模块的指定属性;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)