//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