exports和module.exports的区别

  • 每个模块中都有一个module对象
  • module对象中有一个exports对象
  • 我们可以把需要导出的成员都挂载到module.exports接口对象中
  • 也就是module.exports.xxx=xxx的方式
  • 但是每次都module.exports.xxx=xxx很麻烦,点儿的太多了,所以node为了你方便,同时在每一个模块中都提供了一个成员叫:exports
  • exports===module.exports结果为true
  • 所以对于module.exports.xxx=xxx完全可以:exports.xxx=xxx来写
  • 当一个模块需要导出单个成员的时候,只能使用module.exports=xxx的方式
  • 因为每个模块最终向外return的是module exports
  • exports只是module.exports的一个引用
  • 所以,即便你为exports重新赋值,也不会影响module.exports
  • 但是有一种赋值方式比较特殊:exports=module.exports这个用来重新建立引用关系的

总结

  • 导出多个成员
    exports.b='hello'
    exports.c=function(){ console.log('ccc') }
    exports.d={ foo:'bar' }

  • 只导出单个成员
    module.exports='hello'

  • 下面代码是错误的
    module.exports='hello'
    module.exports=function(){ return x+y }

  • 下面代码是正确的
    module.exports={
    add:function(){
    return x+y},
    str:'hello'
    }

module.exports exports相关推荐

  1. module.exports,exports import require export

    1.ES6使用export和import来导出.导入模块 2.ES6模块的设计思想是尽量的静态化,是编译是就能确定模块的依赖关系,以及输入和输出的变量 3.node的编程思想是模块化,所以每个文件就是 ...

  2. 两种模块化语法(module.exports,exports,require export,import)

    目录 模块 导出 导入 ES6Module 模块 导出 导入 CommonJs与ES6Module的区别 对模块依赖的处理区别 导入模块值的区别 循环依赖的区别 结尾 模块 CommonJs规范中规定 ...

  3. module,exports,require的模块化应用

    首先看官方例程 // 下面是写在逻辑文件common.js 内的 function sayHello(name) {console.log(`Hello ${name} !`) } function ...

  4. 浅析Node模块中module.exports与exports的关系

    Node.js遵循CommonJS规范的模块机制,一个JS文件即被视为一个独立的模块.在模块内部可以通过2种方式导出模块: module.exports exports module.exports是 ...

  5. module是什么类型_nodejs中module.exports和exports的区别

    本文同步发表在我的个人博客中: 沧沧凉凉​www.cclliang.com 最近在学习nodejs,这篇文章就权当是一篇笔记,如果有什么地方有误,望指出. 先说说它们之间的区别: exports只能使 ...

  6. module.exports与exports,export与export default之间的关系和区别

    CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范: 根据这个规范,每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文 ...

  7. module.exports和exports得区别

    对module.exports和exports的一些理解 可能是有史以来最简单通俗易懂的有关Module.exports和exports区别的文章了. exports = module.exports ...

  8. Node.js module.exports与导出

    by lazlojuly 通过lazlojuly Node.js module.exports与导出 (Node.js module.exports vs. exports) 它们是什么,如何使用它们 ...

  9. nodeJS学习(9)--- nodeJS模块:exports vs module.exports

    模块简介: 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ 这些核心模块被编译成二进制文件,可以 require('模块名') ...

最新文章

  1. datagrid DataFormatString
  2. ifstream java_C ifstream将读取一些值然后停止
  3. 018对象——对象 get_class get_declared_classes get_declared_interfaces
  4. iOS 之 内存管理
  5. lt;%%gt;创建内联代码块(表达)
  6. 关于JFace带复选框的树
  7. rda冗余分析步骤_FEMS Microbiol Ecol |微生物生态学中的多变量分析
  8. Content-Script-Type的设置好象没多大用处,或许我不知道有什么用
  9. 回顾 | Apache Flink 1.9 版本新特性强势预告!(内含PPT下载链接)
  10. 社交网络分析-中心性指标
  11. 三轴加速度传感器的计步测算法
  12. isolate两三事
  13. 在iOS应用中跳转到淘宝或天猫客户端商品详情页
  14. 广工计算机学院李少娜,冯广-广东工业大学自动化学院
  15. 求解斐波那契数列(Fibonacci Numbers)算法居然有9种,你知道哪几种吗?
  16. 102-并发编程详解(中篇)
  17. 图说三极管,太容易懂了!(史上最详细版本)
  18. 小白从0开始学习推荐系统
  19. 在混乱的数字货币世界里,如何掌握你的思维避免掉进陷阱?
  20. 【读书笔记】《怪诞行为学》丹·艾瑞里

热门文章

  1. 模拟阴阳师抽卡-vue
  2. 目标检测损失函数Loss大盘点
  3. js去掉字符串中的竖杠
  4. 含有一个量词的命题的否定
  5. 使用学习曲线诊断机器学习模型性能
  6. 旅行商问题 java_爬山算法(Hill Climbing)解决旅行商问题(TSP)
  7. BUAA 2020级“数据结构与程序设计”期中考试【含试卷下载】
  8. cmd弹出对话框方法学习
  9. [Hash 倍增Floyd] BZOJ 2085 [Poi2010]Hamsters
  10. JS冒泡排序和快速排序