为什么ES6决定在解构赋值中使用左侧赋值更有意义或更有用呢?乍一看,这似乎会使代码更容易出错,因为赋值可以发生在两侧,取决于情况。
let obj = { first: 'Jane', last: 'Doe' };
let { first: f, last: l } = obj;
// f = 'Jane'
// l = 'Doe'
f和l似乎都是在左侧定义的,使用左侧变量名称的值以及右侧变量的值的组合。
考虑到这种语法的原理是与对象声明语法保持相同,为什么ECMA不使用以下语法:
let { f: first, l: last } = obj;
const {foo: bar} = a
中新变量是bar
而不是foo
吗? - Koslet {f, l} = obj
将从对象中随机获取属性。因此,如果您想要特定的属性,您需要将它们标记为...这会让您得到let {first: f, last: l}
。你发现“令人困惑”和“容易出错”的事情实际上恰恰相反。 - VLAZ