【发布时间】:2017-10-30 11:36:11
【问题描述】:
不清楚这个语法是什么意思
const { headers, method, url } = request;
在这篇短文中找到https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/
【问题讨论】:
标签: javascript node.js
不清楚这个语法是什么意思
const { headers, method, url } = request;
在这篇短文中找到https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/
【问题讨论】:
标签: javascript node.js
它叫destructuring operator。
解构赋值语法是一个 JavaScript 表达式 可以从数组中解压缩值,或从 对象,转换为不同的变量。
简单示例:
var obj={
"a":2,
"b":3
}
let {a,b}=obj;
console.log(a,b);
从你的例子中,我看到request 是一个对象,语句被翻译成
headers = request.headers
但您也可以将destructuring operator 应用于数组。
var foo = [1, 2, 3];
var [one, two, three] = foo;
console.log(one);
console.log(two);
console.log(three);
【讨论】:
const headers = request[0];
const method = request[1];
const url = request[2];
如果请求是一个对象,
const headers = request.headers;
const method = request.method;
const url = request.url;
【讨论】:
如果request是一个对象,则表示:
const headers = request.headers;
const method = request.method;
const url = request.url;
【讨论】:
request 是一个数组则不是
这叫做解构。查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment IE。您可以在对象内部获取嵌套属性。在你的情况下,它是 res
通过将 props 解构为局部变量而不是像 request.headers 那样编写整个命名空间,可以更方便地从对象访问 props
【讨论】: