不仅仅能赋值给变量
如果通过解构赋值,每一个赋值对象都可以是任何的通常能在左侧接受赋值的东西,包括指向属性的引用( obj.prop
)和指向数组元素的引用( arr[0]
)。
let obj = {};
let arr = [];
({ foo: obj.prop, bar: arr[0] }) = { foo: 123, bar: true };
console.log(obj); // {prop:123}
console.log(arr); // [true]
也可以通过剩余操作符(...)赋值给对象属性和数组元素:
let obj = {};
[first, ...obj.rest] = ['a', 'b', 'c'];
// first = 'a'; obj.rest = ['b', 'c']