Node.js 之学习笔记

这里有一只小白在学习Node.js,相关大神请撤离 :)

module.exports和exports的区别

首先回顾一下Js基础知识:

var a = {"name": "Mark"};
var b = a;

console.log(a);
// Object {name: "Mark"}
console.log(b);
// Object {name: "Mark"}
------------------------
var a = {"name": "Mark"};
var b = a;
b.name = "Merry";
console.log(a);x
// Object {name: "Merry"}
console.log(b);
// Object {name: "Merry"}
------------------------
var a = {"name": "Mark"};
var b = {"name": "Merry"};
b.name = "Job";
console.log(a);
// Object {name: "Mark"}
console.log(b);
// Object {name: "Job"}

这里就涉及到了ES5中的引用类型,b为a的引用,两者指向同一块内存,所以前两种情况到b改变时,a也跟着改变。但b被赋值后,两者并不是指向同一块内存,所以互不影响。

如果你对引用类型的理解没问题的话,那么module.exports 与 exports的区别理解起来就很简单了,如下:

  • module.exports 的初始值为一个空对象 {}
  • exports 是 module.exports 引用
  • require(url) 最后返回的是 module.exports,而不是exports

所以当给exports赋值时,会失效,更多相关姿势请查看这里

is Updating...

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

推荐阅读更多精彩内容

  • 1. node.js模块概述 为了让node.js的文件可以相互调用,node.js提供了一个简单的模块系统。模块...
    flionel阅读 541评论 4 4
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宫若石阅读 1,156评论 0 1
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,651评论 2 41
  • 我来到了杭州,这里真美啊! 美丽的风景 俗话说:“上有天堂,下有苏杭。”的确,这里环境优美,景色宜人,在这个美丽的...
    petermeng阅读 278评论 2 3
  • 1、引言 数据预处理的主要任务如下:(1)数据清理:填写空缺值,平滑噪声数据,识别,删除孤立点,解决不一致性(2)...
    文哥的学习日记阅读 6,795评论 0 11