10.3 模式
下面的两部分包含在解构过程当中:
- 解构源:被解构的数据。例如,解构赋值右侧的部分。
- 解构目标:用于解构的模式。例如,解构赋值左侧的部分。
解构目标是下列三种模式之一:
赋值目标。例如:
x
- 在变量声明和参数定义中,仅允许指向变量。在解构赋值中,就有更多的选择了,后面再讲解。
对象模式。例如:
{ first: «pattern», last: «pattern» }
- 对象模式的组成部分是属性,属性值再一次成为模式(递归地)。
数组模式。例如: [ «pattern», «pattern» ]
- 数组模式的组成部分是元素,元素再一次成为模式(递归地)。
这意味着可以任意深地内嵌模式:
let obj = { a: [{ foo: 123, bar: 'abc' }, {}], b: true };
let { a: [{foo: f}] } = obj; // f = 123
10.3.1 获取你需要的
解构一个对象,仅提取感兴趣的属性:
let { x: x } = { x: 7, y: 3 }; // x = 7
如果解构一个数组,可以选择仅提取一个前缀:
let [x,y] = ['a', 'b', 'c']; // x='a'; y='b';