Object.assign(target, { ...source })
- 用于合并对象,将一个或多个源对象的属性复制到目标对象中,如果目标对象已经存在相同的属性,则会进行覆盖
- Object.assign是浅拷贝,只复制对象的属性值,不复制对象的引用,如果源对象的属性值是一个对象或数组,复制后的属性值仍然是引用同一个对象或数组
let target = {
a: '我是a',
}
let source = {
a: '我是另一个a',
b: '我是b',
}
const result = Object.assign(target , source)
console.log(result)
// {
// a: '我是另一个a',
// b: '我是b',
// }
- Object.assign可以接受多个源对象作为参数,从第二个参数开始,它们的属性合并到第一个参数(目标对象)中
const target = { a: 1 }
const source1 = { b: 2 }
const source2 = { c: 3, d: 4 }
const merged = Object.assign(target, source1, source2)
console.log(merged);
// Output: { a: 1, b: 2, c: 3, d: 4 }