遵守开闭原则:对修改关闭,对扩展开放,所以要想使用引入的模块,子模块必须提供module.exports方法。否则只能运行子模块
var a = 123;
var b = 'abc';
exports.a = a;
module.exports.b = b;
这里的两种方法都能导出该模块,并且,将该模块导出到一个对象当中 此处你是否有疑问呢?为何两个东西会导出到一个对象当中,还是说这两个对象是同一个对象呢?
console.log(exports == module.exports):
看到这个结果,确实是表示exports和module.exports是同一个对象
那我们再看看另外一种情况呢
var a = 123;
bar b = 'abc';
exports = a;
module.exports = b;
再另一个js中去引入该模块
var test = require("./test.js");
这里打印的结果为abc;即使我们讲导出的顺序反过来,结果还是一样,这里就不再做示例了。 综上所述:我们可以得出一些结论: