//utils.js
let a = 100; console.log(module.exports); //能打印出結果爲:{} console.log(exports); //能打印出結果爲:{} exports.a = 200; //這裏辛苦勞做幫 module.exports 的內容給改爲 {a : 200} exports = '指向其餘內存區'; //這裏把exports的指向指走 //test.js var a = require('/utils'); console.log(a) // 打印爲 {a : 200}複製代碼
從上面能夠看出,其實
require
導出的內容是module.exports
的指向的內存塊內容,並非exports
的。
簡而言之,區分他們之間的區別就是exports
只是module.exports
的引用,輔助後者添加內容用的。bash
用白話講就是,exports
只輔助module.exports
操做內存中的數據,辛辛苦苦各類操做數據完,累得要死,結果到最後真正被require
出去的內容仍是module.exports
的,真是好苦逼啊。ui
其實你們用內存塊的概念去理解,就會很清楚了。spa
而後呢,爲了不糊塗,儘可能都用 module.exports
導出,而後用require
導入。code