javascript中對象的解構賦值

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]];
  },
};

正常的對象解構賦值

和順序無關,只要變量名和對象中的屬性名相同

const {openingHours,name,categories} = restaurant;
console.log(openingHours,name,categories);

修改變量名的解構賦值

const {openingHours:hours,name,categories:tags} = restaurant;
console.log(hours,name,tags);

設置默認值的解構賦值

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);

嵌套解構賦值

const {openingHours:hours} = restaurant;
const{fri:{open:o,close:c}} = hours;
console.log(o,c);

通過對象傳遞參數,可以不考慮順序

const hello = function ({ name='boy', age=10 }) {
  console.log(`hello ${name},and you are ${age} years old!`);
};

hello({ age: 11, name: 'ben' });
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容