理解:有條件的對象屬性

再也不須要根據一個條件建立兩個不一樣的對象,能夠使用展開運算符號來處理。
const getUser = (emailIncluded) => {
  return {
    name: 'John',
    surname: 'Doe',
    ...emailIncluded && { email : 'john@doe.com' }
  }
}

const user = getUser(true);
console.log(user); // outputs { name: "John", surname: "Doe", email: "john@doe.com" }

const userWithoutEmail = getUser(false);
console.log(userWithoutEmail); // outputs { name: "John", surname: "Doe" }
複製代碼
剛開始不是很明白...emailIncluded && { email : 'john@doe.com' }這句代碼,其實理解這句代碼應先想到運算符優先級,MDN 運算符優先級連接
好了,如今咱們知道 && 優先級高於...,因此先執行邏輯與操做,這裏附上《JavaScript高級程序設計》一書對於邏輯與操做符的詳細介紹:

因此到這裏,根據邏輯與定義規則,一切就明白了,true && { email : 'john@doe.com'}獲得{ email : 'john@doe.com'}再執行擴展運算符...,結束。

這是我來掘金的第一篇博客,菜鳥一隻,歡迎你們評論!!!

相關文章
相關標籤/搜索