es6☞对象的解构赋值

mac2022-06-30  40

变量必须与属性同名

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

转载于:https://www.cnblogs.com/guangzan/p/11268715.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)