再也不须要根据一个条件建立两个不一样的对象,能够使用展开运算符号来处理。
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'}
再执行扩展运算符...
,结束。
这是我来掘金的第一篇博客,菜鸟一只,欢迎你们评论!!!