module.exports与exports原本是相互引用的关系,但是require引用的文件却取的是module.exports,如果exports改变了引用,那么require该文件是取不到exports的结果。
//a.js 改变了module.exports指向,module.exports与exports指的就不是同一个内存,所以结果是{a: 1, b: 2)
module.exports= {
a: 1,
b: 2
}
exports.c = 3;
var s = require('./a.js')
console.log(s); //{a: 1, b: 2)
//b.js 改变了exports的指向,则s得到得结果就是{}
exports= {
a: 1,
b: 2
}
var s = require('./b.js')
console.log(s); //{)
//c.js
module.exports.a = 1;
module.exports.a = 1;
exports.c = 3;
var s = require('./c.js')
console.log(s); //{a: 1, b: 2, c: 3)