javascript - 这些代码中的 `{}` 和 `()` 有什么区别?

标签 javascript ecmascript-6 expression statements destructuring

Destructuring_assignment#Assignment_without_declaration

它说:

the {a, b} on the left-hand side is considered a block and not an object literal.

var a, b;
{a, b} = {a:1, b:2};//Syntax Error!
({a, b} = {a:1, b:2}); // it works

第二句中的“()”是做什么的?

为什么其中的'{}'被认为是对象字面量?

最佳答案

第一个尝试给 block 赋值,这是不对的。 第二个相当于

{}({a, b} = {a:1, b:2});

所以在这里您调用构造函数,提供属性 block 并为它们赋值。

关于javascript - 这些代码中的 `{}` 和 `()` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38350667/

相关文章:

javascript - 如何使用 jQuery 处理 Google Suggest 查询

javascript - 如何通过弹出窗口获取输入并通过 javascript/jquery 将文本放入变量中

javascript - 如何将图像的 ALT 值放入 javascript 或 jquery 中的变量中

ES6 类中的 javascript 'this' 返回未定义

javascript - 在原型(prototype)代理之上分配一个属性

php - 传递 Javascript 数组 -> PHP

javascript - ES6 Promise 错误处理

linq - 如何在我的lambda表达式中使用带有2个参数的方法

c# - 表达式 Lambda 错误 "Argument types do not match"

algorithm - 在数学算法中使用多个加权属性对扫描结果进行优先排序