我了解到使用Object.assign()方法时,它只会扩展顶层对象。那么如何深度扩展对象呢?例如,假设我有以下源对象:
const source = {
id: 1,
otherKey: {},
params: {
page: {
a: 1,
b: {}
},
data: {
b: 1
}
}
}
我正在这样使用 Object.assign()
:
Object.assign({}, source, {
params: {
page: {
a: 2
}
}
}
结果将是:
{
id: 1,
otherKey: {},
params: {
page: {
a: 2
}
}
}
如何以浅克隆的方式保留params.data和params.page.b键。
oldObject.params.data === newObject.params.data // true
oldObject.params.page === newObject.params.page // false
oldObject.params.page.b === newObject.params.page.b // true
注意: 此问题与 如何深度合并而不是浅合并 不同。那里的答案不能给出预期的结果。
请检查此 bin,它使用了上述链接中的一个答案。
oldObject.params === newObject.params
和oldObject === newObject
的预期结果? - klugjo