- 对象解构赋值
** 对象的取值是由属性取值
对象的值也可以设置默认值(见数组结构篇) **
解构例子
let { a, b } = { a = "aaa", b = "bbb"};
a // "aaa"
b // "bbb"
如果变量名与属性名不一致没关系,可以用下面的方法
let { a: b } = { a: "aaa" };
a // a is not defined
b // "aaa"
模式不会被赋值
let obj = {
person: {
name : "Roy"
}
}
let { person: { name }} = obj;
person // undefined
name // "Roy"
默认值生效条件是对象的属性值严格等于 undefined
let { a = 1 } = { a: undefined };
a // 1
let { a = 1 } = { a: null };
a // null
已声明变量的解构赋值必须非常小心
let a = "aaa";
{a} = { a: "bbb" }; // error
正确写法:
({a} = { a: "bbb" });
a // "bbb"