ES6-对象的解构赋值
2018-10-31 本文已影响0人
东邪_黄药师
构不仅可以用于数组,还可以用于对象
对象的属性没有次序,但是变量必须与属性同名,才能取到正确的值。
对象的解构赋值不用按照顺序:
var { name, age, id } = { id: "007", name: "Conan", age: 28 };
console.log(name); //Conan
console.log(age); //28
console.log(id); //007
量名与属性名不一致:
var { name: person_name, age: person_age, id: person_id } = { id: "007", name: "Conan", age: 28 };
console.log(person_name); //Conan
console.log(person_age); //28
console.log(person_id); //007
let object = { first: "Hello", last: "World" };
let { first: firstName, last: lastName} = object;
console.log(firstName); //Hello
console.log(lastName); //World
指定默认值
默认值生效的条件是,对象的属性值严格等于undefined。
等于null则不生效。
var { x = 3 } = {};
console.log(x); //3
var { x, y = 5 } = { x: 1 };
console.log(x); //1
console.log(y); //5
var { message: msg = "You Are A Person!" } = {};
console.log(msg); //You Are A Person!
var { x = 3 } = { x: undefined };
console.log(x); //3
var { y = 3 } = { y: null };
console.log(y); //null
现有对象的方法
对象的解构赋值,可以很方便地将现有对象的方法,赋值到某个变量。
var x;
({x} = { x: 1 });
console.log(x); //1