const restaurant = {
name: 'Classico Italiano',
location: 'Via Angelo Tavanti 23, Firenze, Italy',
categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],
starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],
mainMenu: ['Pizza', 'Pasta', 'Risotto'],
openingHours: {
thu: {
open: 12,
close: 22,
},
fri: {
open: 11,
close: 23,
},
sat: {
open: 0, // Open 24 hours
close: 24,
},
},
order: function (starterIndex, mainIndex) {
return [this.starterMenu[starterIndex], this.mainMenu[mainIndex]];
},
};
正常的對象解構(gòu)賦值
和順序無關(guān)拳魁,只要變量名和對象中的屬性名相同
const {openingHours,name,categories} = restaurant;
console.log(openingHours,name,categories);
修改變量名的解構(gòu)賦值
const {openingHours:hours,name,categories:tags} = restaurant;
console.log(hours,name,tags);
設(shè)置默認(rèn)值的解構(gòu)賦值
const {menu=[],starterMenu:starters=[]} = restaurant;
console.log(menu,starters);
變量改值
let [a,b] = [1,2];
const obj = {a:23,b:99,c:0};
({a,b} = obj);
嵌套解構(gòu)賦值
const {openingHours:hours} = restaurant;
const{fri:{open:o,close:c}} = hours;
console.log(o,c);
通過對象傳遞參數(shù)融师,可以不考慮順序
const hello = function ({ name='boy', age=10 }) {
console.log(`hello ${name},and you are ${age} years old!`);
};
hello({ age: 11, name: 'ben' });