10.6 更多对象解构特性
10.6.1 属性值缩写
属性值缩写是对象字面量的特性:如果属性的值是通过一个变量提供的,这个变量的名字和键名一样,就可以省略这个键名。这对结构也同样有效:
let { x, y } = { x: 11, y: 8 }; // x = 11; y = 8
该声明等同于:
let { x: x, y: y } = { x: 11, y: 8 };
10.6.2 计算属性键
计算属性键是另一个对象字面量特性,同样对解构有效:可以通过一个表达式指定属性键,把表达式放在中括号里面:
const FOO = 'foo';
let { [FOO]: f } = { foo: 123 }; // f = 123
计算属性值允许你解构键是 symbol 的属性:
// Create and destructure a property whose key is a symbol
const KEY = Symbol();
let obj = { [KEY]: 'abc' };
let { [KEY]: x } = obj; // x = 'abc'
// Extract Array.prototype[Symbol.iterator]
let { [Symbol.iterator]: func } = [];
console.log(typeof func); // function