nodejs模块中exports和module.exports的区别
2017-08-04
展开全部
你改变不了 exports 的引用。准确来说,是改变后实际导出的还是 exports 原引用指向的对象。module.exports 就是用来修复此问题的。
如果我们把你的 JS 文件整个放在一个闭包内执行:
define(function(require, exports) {
exports = function() {};
});
exports 的引用改变外部根本观察不到。但如果换成 module.exports:
define(function(require, exports, module) {
module.exports = function() {};
});
这时候 module 对内外的观察者来说都是同一个东西,在内部改变了 module.exports 在外部能获取到。
如果我们把你的 JS 文件整个放在一个闭包内执行:
define(function(require, exports) {
exports = function() {};
});
exports 的引用改变外部根本观察不到。但如果换成 module.exports:
define(function(require, exports, module) {
module.exports = function() {};
});
这时候 module 对内外的观察者来说都是同一个东西,在内部改变了 module.exports 在外部能获取到。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询