资讯专栏INFORMATION COLUMN

exports和module.exports

VincentFF / 1247人阅读

摘要:有几个没有定义但是却存在的变量,其中两个是。变量是模块对象自身,是在的构造函数中初始化的一个空对象,而不是。即这两个的关系为是指向的引用,只有指向同一内存,两者才有联系。后报错,是因为返回的是,而此时仍指向了空对象

nodejs有几个没有定义但是却存在的变量,其中两个是:module、exports。
module变量是模块对象自身,exports是在module的构造函数中初始化的一个空对象({},而不是null)。

exports = module.exports = {};

这两个的关系为: exports是指向module.exports的引用,只有指向同一内存,两者才有联系。

module.exports指向内存改变,exports也会改变;

exports添加新属性,就是给module.exports添加新属性;

如果直接对exports进行覆盖,exports就指向了和module.exports不同的内存。require后报错,是因为require返回的是module.exports,而此时module.exports仍指向了空对象;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78280.html

相关文章

  • js手札--关于AMD的简单分析

    摘要:废话真多,是的哈而要说清和的二三事,又不是件容易的事,简单理解,和指向同一内存区域。而对于当前模块来说是外部的模块。参考关于和的区别和的区别这篇文章很不赖。 AMD中define常见的形式 define(alpha ,[require, exports, module], function(require, exports, module) { var foo = require(...

    frank_fun 评论0 收藏0
  • Node.js中module.exportsexports的区别

    摘要:看了好多篇博客,对于和区别的解释众说纷纭有点迷糊,还是自己写来感受一下吧。会造成被另外一个内存地址替换,也就中断得了和的联系。调用了我调用了我调用了我两者的值又相同。小弟才疏学浅,讲解较为啰嗦,亦是初次写之,若有疏漏,妄不吝赐教,特此感谢。 看了好多篇博客,对于module.exports和exports区别的解释众说纷纭有点迷糊,还是自己写demo来感受一下吧。 module.exp...

    codecook 评论0 收藏0
  • Node.js 中 module.exports exports 的区别

    摘要:中最常用的恐怕就是,以及了,那么和这两者有什么区别,在什么情况下使用,又在什么时候使用。在拼接之后的代码中,给这个函数传入的是,也就是说和引用的是同一个对象。如果我们给增加属性,那么因为也会增加相同的属性,此时。 Node.js中最常用的恐怕就是 require, exports 以及 module.exports 了,那么 exports 和 module.exports 这两者有什...

    laoLiueizo 评论0 收藏0
  • [译] node.js 中的 module.exportsexports

    摘要:接下来我们将对和在中的使用有一个更好地了解。这篇文章包括了中的使用。这看起来似乎有些困惑,请记住和引用的是同一对象。重点返回一个,该对象引用了的值。我们将中公开的方法赋值给变量。总结和模块在中是一个随处可见的任务。 理解 node.js 中的 module.exports 与 exports 原文链接 作为一个开发者,我们经常会遇到需要使用不熟悉的代码的情况。在这个过程中遇到一个问题:...

    sunsmell 评论0 收藏0
  • javascript 之模块化篇

    摘要:模块的加载第一个参数,是一个数组,里面的成员就是要加载的模块第二个参数,则是加载成功之后的回调函数。异步加载,浏览器不会失去响应它指定的回调函数,只有前面的模块都加载成功后,才会运行,解决了依赖性的问题。 什么是模块化? 模块化就是把系统分离成独立功能的方法,这样我们需要什么功能,就加载什么功能。 优点:可维护性:根据定义,每个模块都是独立的,良好设计的模块会尽量与外部的代码撇清关系,...

    huangjinnan 评论0 收藏0
  • exportsmodule.exportsexport、export default到底是咋回事

    摘要:前言难得有空,今天开始重新规范的学习一下编程。简而言之,区分他们之间的区别就是只是的引用,辅助后者添加内容用的。导出了方法导出了集合成对象导出因为导出是把零散的聚集在一起作为一个对象,而是导出为属性。 前言 难得有空,今天开始重新规范的学习一下node编程。但是引入模块我看到用 require的方式,再联想到咱们的ES6各种export 、export default。 阿西吧,头都大...

    Jaden 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<