javascript - 在javascript中解释var a=b.c={}?

标签 javascript node.js

我在浏览 node.js 时,在模块部分遇到了类似 varexports = module.exports = {}; 的内容。

这与 var a=b.c={} 非常相似,我如何可视化它?

这里发生了什么?

据我所知,ab都被分配为对象,它们都描述相同的事物,或者它们都引用相同的事物?

示例

exports.sayHelloInEnglish = function() {
  return "HELLO";
};

exports.sayHelloInSpanish = function() {
  return "Hola";
};

相同
module.exports = {
  sayHelloInEnglish: function() {
    return "HELLO";
  },

  sayHelloInSpanish: function() {
    return "Hola";
  }
};

有人可以用更简单的术语向我解释一下吗?

最佳答案

var exports = module.exports = {};, how do i visualize it?

首先确保理解它是如何解析的,语法由哪些组成部分组成。它基本上是两个嵌套赋值1:

var exports = (module.exports = {});

你可以将其翻译成等价的

var _temp = {};
module.exports = _temp;
var exports = _temp;

所以是的,它们都将包含相同的对象。

1:从语法上讲,它是变量声明初始化程序中的赋值表达式,但为了便于理解,我们忽略了 var

关于javascript - 在javascript中解释var a=b.c={}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45027570/

相关文章:

javascript - 无法在 jQuery 中打印 PHP JSON 数组

javascript - 使用 javascript 或 jquery 更改链接的域部分

javascript - 尝试在 AngularJS 上对基本服务进行单元测试时出错

node.js - 将计算繁重的任务与基于 Nodejs 的 API 分开的推荐方法是什么?

javascript - 获取所有可能集合的算法

node.js - async/await 中的递归未在主函数中解析

javascript - Node 中的请求流在被消费之前会发生什么?

javascript - 没有 Wizard Gem 的 Rails 多步骤表单

javascript - 异步/等待功能推送不起作用

node.js - Meteor:ArrayBuffer(FileReader 结果)未传递给 Meteor.method()