【发布时间】:2022-01-21 14:12:50
【问题描述】:
为什么 ES6 决定左侧赋值更有意义或对解构赋值更有用?乍一看,这似乎使代码更容易出错,现在分配可以在双方发生,具体取决于情况。
let obj = { first: 'Jane', last: 'Doe' };
let { first: f, last: l } = obj;
// f = 'Jane'
// l = 'Doe'
f 和 l 似乎都在左侧定义,使用左侧的 var 名称和右侧的这些 var 的值组合的值。
鉴于此语法的基本原理是保持它与对象声明语法相同,为什么 ECMA 不使用:
let { f: first, l: last } = obj;
【问题讨论】:
-
"现在两边都可以赋值" 你赋值给的变量还在左边,你赋值给这些变量的数据还在右边,不是吗?
-
你能展示一些你认为让你困惑的代码吗?
-
你的意思是为什么
const {foo: bar} = a中的新变量是bar而不是foo? -
@BrianFreud 我不知道您希望您的替代方案如何工作 - 对象是 not 排序的,因此
let {f, l} = obj将为您提供对象的 RANDOM 属性。所以,如果你想拥有特定的属性,你需要给它们贴上标签……这会给你留下let {first: f, last: l}。你觉得“令人困惑”和“容易出错”的事情恰恰相反。 -
我不明白你所说的“反转”是什么意思。赋值从右(源值)到左(目标)。
标签: javascript ecmascript-6 ecma