我有一个向传入对象添加键的函数,但是有人告诉我使用扩展运算符,我被告知可以使用扩展运算符创建具有相同属性的新对象,然后在其上设置isAvailable 。
return new Partner(ServerConfig, capabilities, initialState)
}
class Partner {
constructor (ServerConfig, capabilities, initialState) {
initialState.isAvailable = true
所以我尝试了类似的方法,但成功了,你能帮我吗?并感到困惑,我应该以这种方式使用扩展运算符,从函数返回吗?newObject = {}
// use this inside a function and get value from return
return {
value: {
...newObject,
...initialState
}
}
initialState.isAvailable = true
最佳答案
这些属性是按顺序添加的,因此,如果要覆盖现有属性,则需要将它们放在结尾而不是开头:
return {
value: {
...initialState,
...newObject
}
}
不过,您不需要
newObject
(除非您已经放过它了):return {
value: {
...initialState,
isAvailable: newValue
}
}
例子:
const o1 = {a: "original a", b: "original b"};
// Doesn't work:
const o2 = {a: "updated a", ...o1};
console.log(o2);
// Works:
const o3 = {...o1, a: "updated a"};
console.log(o3);