1、 解構
let obj = {
p: [
'Hello',
{ y: 'World' }
]
};
let { p, p: [x, { y }] } = obj;
x // "Hello"
y // "World"
p // ["Hello", {y: "World"}]
2、 多次解構
const node = {
loc: {
start: {
line: 1,
column: 5
}
}
};
let { loc, loc: { start }, loc: { start: { line }} } = node;
line // 1
loc // Object {start: Object}
start // Object {line: 1, column: 5}
上面代碼有三次解構賦值,分別是對loc
、start
、line
三個屬性的解構賦值。注意,最後一次對line
屬性的解構賦值之中,只有line
是變量,loc
和start
都是模式,不是變量。
3、嵌套賦值
let obj = {};
let arr = [];
({ foo: obj.prop, bar: arr[0] } = { foo: 123, bar: true });
obj // {prop:123}
arr // [true]