理解:有条件的对象属性

再也不须要根据一个条件建立两个不一样的对象,能够使用展开运算符号来处理。
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'}再执行扩展运算符...,结束。

这是我来掘金的第一篇博客,菜鸟一只,欢迎你们评论!!!

相关文章
相关标签/搜索