对象解构与短路评估
Object destructuring with Short-Circuit Evaluation
是否可以实现这样的目标?
const obj1 = { name: 'tom' }
const obj2 = { age: 20 }
let { name, age } = obj1 || obj2
得到结果 -> name = 'tom' and age=20
上面的代码不起作用,因为它只对条件求值一次,而不是对每个变量赋值求值,这当然是有道理的。它的计算结果为 name='tom', age=undefined
有什么方法可以使该逻辑起作用吗?
谢谢!
您可以合并对象,然后像这样尝试解构:
const obj1 = { name: 'tom' }
const obj2 = { age: 20 }
let { name, age } = {...obj1, ...obj2};
console.log( name, age )
您可以通过
let { name, age } = Object.assign({}, obj1, obj2)
这首先创建一个对象,它具有obj1的所有属性和obj2的属性。
请注意,这不会深度复制属性。
是否可以实现这样的目标?
const obj1 = { name: 'tom' }
const obj2 = { age: 20 }
let { name, age } = obj1 || obj2
得到结果 -> name = 'tom' and age=20
上面的代码不起作用,因为它只对条件求值一次,而不是对每个变量赋值求值,这当然是有道理的。它的计算结果为 name='tom', age=undefined
有什么方法可以使该逻辑起作用吗?
谢谢!
您可以合并对象,然后像这样尝试解构:
const obj1 = { name: 'tom' }
const obj2 = { age: 20 }
let { name, age } = {...obj1, ...obj2};
console.log( name, age )
您可以通过
let { name, age } = Object.assign({}, obj1, obj2)
这首先创建一个对象,它具有obj1的所有属性和obj2的属性。
请注意,这不会深度复制属性。