再也不須要根據一個條件建立兩個不一樣的對象,能夠使用展開運算符號來處理。
const getUser = (emailIncluded) => {
return {
name: 'John',
surname: 'Doe',
...emailIncluded && { email : 'john@doe.com' }
}
}
const user = getUser(true);
console.log(user);
const userWithoutEmail = getUser(false);
console.log(userWithoutEmail);
複製代碼
剛開始不是很明白...emailIncluded && { email : 'john@doe.com' }
這句代碼,其實理解這句代碼應先想到運算符優先級,MDN 運算符優先級連接
好了,如今咱們知道 && 優先級高於...,因此先執行邏輯與操做,這裏附上《JavaScript高級程序設計》一書對於邏輯與操做符的詳細介紹:
因此到這裏,根據邏輯與定義規則,一切就明白了,true && { email : 'john@doe.com'}
獲得{ email : 'john@doe.com'}
再執行擴展運算符...
,結束。
這是我來掘金的第一篇博客,菜鳥一隻,歡迎你們評論!!!