总结来说就三句话;
module.exports初始值为一个空对象
exports是指向module.exports的引用
require()返回的是module.exports
var a = {name : 1};
var b = a;
console.log(a);
console.log(b);
b.name = 2;
console.log(a);
console.log(b);
var b = {name:3};
console.log(a);
console.log(b);
输出结果:
{name :1}
{name :1}
{name :2}
{name :3}
{name :2}
{name :3}
a是一个对象,b是对a的引用,b修改,两个内容的变化是一样的,但是如果b被覆盖了,两个的内容就不一眼过了。
上面这个例子应该可以说明这两者之间的区别
转自https://wizardforcel.gitbooks.io/yiqixue-nodejs/content/book/2.2.html