require和module.exports都是common.js的语法规范,在原生的浏览器环境中,module.exports并不可用。如果js文件需要在原生的浏览器中进行运行,那么需要转换。
一般可通过webpack打包就可以在浏览器访问了。
用法示例
//file.js
module.exports = {
// 导出一个对象
key1: value1,
key2: value2,
// ...
};
// 或者
module.exports = function() {
// 导出一个函数
// 函数的具体实现
};
module.exports进行一个导出,通过require进行引入,这是一种
浅拷贝,一个js文件只能有一个module.exports,如果有多个,只有最后一个会生效,其它的都会被后面的覆盖。
//otherFile.js
const myObject=require('./file.js')
console.log(myObject.key1) //value1
console.log(myObject.key2) //value2
myObject是指向module.exports的对象地址的,
如果重新进行赋值是会改变原引用的指向的,这对其它require相同文件的使用是非常致命的,所以一般不会进行修改。