天天看点

nodejs中的exports和module.exports

exports和module.exports都是nodejs中导出文件的方式,那么它们之间有什么关联呢?

事实上,module.exports才是模块公开的接口。每个模块都会自动创建一个module对象,其上有一个exports属性,初始值为{}。为了方便改变其值,模块中又创建了exports对象,和module.exports指向同一个对象。({}是引用对象类型,根据此特点理解这段话)。

对于模块最后导出的数据到底是什么,说到底就是module.exports的值是多少。可能改变module.exports值存在两种可能:

  1. 通过exports改变对象中具体的某一属性值
  2. 对module.exports重新赋值(赋值对象,字符串,数组,....都可以)