为啥在这个变量赋值中引用了两个对象? [复制]

Posted

技术标签:

【中文标题】为啥在这个变量赋值中引用了两个对象? [复制]【英文标题】:Why are two objects referenced in this variable assignment? [duplicate]为什么在这个变量赋值中引用了两个对象? [复制] 【发布时间】:2017-05-01 11:07:50 【问题描述】:

在 node module.js 文件中有这行代码:

exports = module.exports = 
   makeRequireFunction,
   stripBOM,
   addBuiltinLibsToObject
;

这是在做什么?

 exports = module.exports 

最终,exports 被设置为这个新对象:

= 
   makeRequireFunction,
   stripBOM,
   addBuiltinLibsToObject
;

为什么需要exports = module.exports?

【问题讨论】:

如果它像在 Python 中那样工作,它只是在一行中将相同的值分配给两个变量(exportsmodule.exports)。 【参考方案1】:

这只是一个快捷方式,可让您继续在文件的下方继续使用exports.[whatever]。最终,“导出”的是module.exports 的内容。

【讨论】:

以上是关于为啥在这个变量赋值中引用了两个对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

java:在java中为啥静态变量没有this引用?

Python面试题目之Python的复制和赋值浅析

关于赋值与深浅复制

JavaScript——变量

Python中复制深拷贝和浅拷贝的区别

python的深浅拷贝