exports 和 module.exports 的区别
1、module.exports 初始值为一个空对象 {}
2、exports 是指向的 module.exports 的引用
3、require() 返回的是 module.exports 而不是 exports
我们经常看到这样的写法:
exports = module.exports = somethings
上面的代码等价于:
module.exports = somethingsexports = module.exports
原理很简单,即 module.exports 指向新的对象时,exports 断开了与 module.exports 的引用,那么通过 exports = module.exports 让 exports 重新指向 module.exports 即可。
module.exports也可以像exports的用法那样,可以替代exports的用处。module.exports包含exports,反过来exports不能替代module.exports。