一句话说清exports和module.exports的区别
发布于 11 年前 作者 stepjacky 6679 次浏览 最后一次编辑是 8 年前

无需多言,不明白这两者区别的大多没看官方解释,只有一句话 If you want the root of your module’s export to be a function (such as a constructor) or if you want to export a complete object in one assignment instead of building it one property at a time, assign it to module.exports instead of exports.

大家明白了吧

6 回复

//个人理解 //node.js 默认声明 //var exports = {}; //module.exports = exports;

moudle.exports = {a:1}; exports.a = 2;

//导出的是{a:1}

很简单, exports是入参, 外部传入的是module.exports, 而修改入参的引用并不会影响外部对象

var module = {
  exports: {}
};

function your_module_define(require, exports, module){
 //修改入参的引用, 不会影响外部变量
 exports = {
   nouse: null
 };
 //修改对象的引用才有用
 module.exports = {}
}

其实懂引用类型和值类型的都会很容易理解吧。。

回到顶部