let {name, age} = {name: 'wang', age: 22};
console.log(name, age); //wang 22
let {name} = {name: 'wang', age: 22};
console.log(name); //wang
let {sex} = {name: 'wang', age: 22};
console.log(sex); //undefined
真正被赋值的是后者,而不是前者。
let {name: n,age: a} = {name: 'wang', age: 22};
console.log(n,a) //wang 22
嵌套
let people = {
msg : [
'Tom',
{family: ['son', 'daughter', 'wife']}
]
}
let { msg:[x,{ family }] } = people;
console.log(x,family) //Tom Array(2) ["son", "daughter", "wife"]
对象的解构赋值可以取到继承的属性。
const tom = {};
const father = { height: 180};
Object.setPrototypeOf(tom, father);
const { height } = tom;
console.log(height); //180
指定默认值
let {x, y = 5} = {x: 1};
console.log(y); //5
// 默认值生效的条件是,对象的属性值严格等于undefined。
var {x = 3} = {x: undefined};
console.log(x); // 3
var {x = 3} = {x: null};
console.log(x); // null
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。