我正在经历node.js
,我在模块部分遇到了类似var exports = module.exports = {};
的内容。
这与var a=b.c={}
非常相似,我如何将其可视化?
这里发生了什么?
根据我的理解,a
和b
都被指定为对象,它们都描述相同的东西,或者它们都引用相同的东西?
示例
exports.sayHelloInEnglish = function() {
return "HELLO";
};
exports.sayHelloInSpanish = function() {
return "Hola";
};
与
相同module.exports = {
sayHelloInEnglish: function() {
return "HELLO";
},
sayHelloInSpanish: function() {
return "Hola";
}
};
有人可以用更简单的术语向我解释一下吗?
答案 0 :(得分:3)
var exports = module.exports = {};
,我如何想象它?
首先确保了解它是如何解析的,语法包含哪些组件。它基本上是两个嵌套的赋值 1 :
var exports = (module.exports = {});
您可以将其转换为等效的
var _temp = {};
module.exports = _temp;
var exports = _temp;
所以是的,它们都包含相同的对象。
1:在语法上它是变量声明的初始化中的赋值表达式,但为了便于理解,我们忽略了var
答案 1 :(得分:0)
根据声明的解析树,以下是按顺序发生的事情。
例如,你可以试试这个。
var a = [1,5]
var b = a
b[1] = 2
console.log(a)
console.log(b)
两者都有更新的值。