javascript - 这个 Javascript 语法是否正确 { req, socket, res = socket, head, proxyName }?
问题描述
这可以在流行的 npm存储库http2-proxy中找到。代码运行如下:
async function proxy (
{ req, socket, res = socket, head, proxyName },
onReq,
onRes
) {...}
带有赋值运算符的对象被传递给函数。我只是想知道这种语法是否正确,因为对象应该使用冒号(:) 作为赋值运算符。我在控制台中测试了这个语法,果然给出了一个语法错误,但是由于它是在一个流行的 repo 中找到的,我认为这是正确的,但是怎么会呢?
解决方案
是的,这是正确的语法。
您所看到的称为参数解构,它与分配对象的语法不同。代码片段是以下内容的简写:
async function proxy (
proxyRes,
onReq,
onRes
) {
// Destructure the proxyRes object into individual variables
const { req, socket, res = socket, head, proxyName } = proxyRes;
}
对象/参数解构是在 ES6 中引入的。与以往一样,MDN 拥有关于该主题的优秀文档。
推荐阅读
- c# - 在内容页面的 OnAppearing() 中使用 ScrollView 中的 ScrollToAsync() 方法时出现问题
- spring - 我需要帮助使用 Spring、Junit 5、Mockito、REST-Assured 和 Lombok 设置控制器测试
- gdb - GDB 没有采用放置在 ~/.gdbint 和/或 ~/.gdbrc 文件中的指令
- kubernetes - 如何将启用 SSL 的 Cassandra 集群配置为 cassandra-reaper 的后端存储?
- javascript - 在Angular 8中具有多个选择的复选框内包含内容的自定义复选框
- c# - 找不到类型或命名空间名称“PeterO”
- java - 了解java中的通用上限通配符
- mapping - Cloudformation 参数映射和使用 !join 加入 API Gateway uri
- javascript - 覆盖现有动画
- sql - 将枢轴上的计数转换为位/标志?