node 中 module.exports与exports的区别

267 阅读1分钟

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)