首先要知道,这个用法有一套提取值的模式。解构就是“按照一定模式,从数组和对象中提取值”。
其次,了解一些使用场合,比如下面,一次从对象p取得两个值。
class Person {
constructor() {
this._age = 29;
this._name = 'Andy';
}
get age() {
return this._age;
}
get name() {
return this._name;
}
}
var p = new Person();
let { age, name } = p;
再者,一些注意事项。比如下面小括号的写法,是为了避免JavaScript引擎将{sex: this.sex, addr: this.addr, profession: this.profession}理解成一个代码块。
class Person {
constructor(opt) {
this._age = 29;
this._name = 'Andy';
({ sex: this.sex, addr: this.addr, profession: this.profession } = opt);
}
get age() {
return this._age;
}
get name() {
return this._name;
}
}
let opt = { sex: 'male', addr: 'BeiJing', profession: 'student' };
var p = new Person(opt);
let { age, name } = p;