nodejs中require、exports与module.exports的区分

时间:2021-11-22 23:15:06

nodejs中require、exports与module.exports的区分


    我所理解的是对于初学者可以console出来,看一看里面结构,自己就会有所顿悟。
话不多少直接上代码,这是add.js
<span style="font-family:KaiTi_GB2312;">var add=function(v1,v2){
return v1+v2;
}
var add2=function(v1,v2){
<span style="white-space:pre">	</span>return v1*v2;
}</span>
nodejs中require、exports与module.exports的区分
此时module对象每个模板都有一个,module属性中有exports,为一个空对象
module可以理解为模块中(也就是js文件中)的一个全局对象
对于module.exports和exports理解

1. module应该是require方法中,上下文中的对象

2. exports对象应该是上下文中引用module.exports的新对象

3. exports.a = xxx 会将修改更新到module.exports对象中

4. exports = xxx 直接改变了 exports的指向

上面这4条揭示了这两个对象的本质。也就是说exports指向module.exports. 如果写exports.a =1, 意味着module.exports.a也等于1