構(gòu)不僅可以用于數(shù)組,還可以用于對(duì)象
對(duì)象的屬性沒(méi)有次序,但是變量必須與屬性同名,才能取到正確的值。
對(duì)象的解構(gòu)賦值不用按照順序:
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
指定默認(rèn)值
默認(rèn)值生效的條件是,對(duì)象的屬性值嚴(yán)格等于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
現(xiàn)有對(duì)象的方法
對(duì)象的解構(gòu)賦值,可以很方便地將現(xiàn)有對(duì)象的方法,賦值到某個(gè)變量。
var x;
({x} = { x: 1 });
console.log(x); //1