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。