exports 、module.exports的区别

  • exports、module.exports遵守的是CommonJS规范
  • export、export default 是ES的规范

Node 模块遵循的是CommonJS规范,所以Node里使用的是exports 和 module.exports
CommonJS定义的模块分为:模块标识(module)、模块定义(exports)、模块引用(require)

  1. module.exports 初始值为一个空对象 { }
  2. exports 指向的是module.exports 的引用
  3. require 返回的是module.exports 而不是exports
文档解释:
module.exports

exports

即: 为了方便,Node为每个模块提供了一个exports变量,指向module.exports:等同于在每个模块头部有一行这样的命令:

var exports = module.exports

于是可以直接在exports对象上添加方法,表示对外输出的接口,如同在module.exports上添加一样
但如果直接将exports指向另一个变量,就切断了exports和 module.exports之间的联系,require引入的只是module.exports, exports的变化与reqiure引入无关了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分...
    一个敲代码的前端妹子阅读 1,982评论 8 23
  • 【转】 遵循的模块化规范不一样 模块化规范:即为 JavaScript 提供一种模块编写、模块依赖和模块运行的方案...
    houruyaogeili阅读 3,326评论 0 2
  • 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题...
    emmet7life阅读 2,817评论 0 1
  • 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分...
    MapleLeafFall阅读 1,194评论 0 0
  • 许多事物在随着时间的推移会改变初衷,本来要往一个方向努力的我们,却最终败给了时间和距离,向着不同的方向各自前...
    矫情的自己阅读 108评论 0 0