跳转至

JavaScript中Object.assign的使用

{% note info %} Object.assign() 静态方法将一个或者多个 源对象 中所有可枚举自有属性复制到 目标对象,并返回修改后的目标对象。

复制对象

const obj = { a: 1 };
const copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }

合并对象

{% note danger %} 目标对象本身发生了变化

const o1 = { a: 1 };
const o2 = { b: 2 };
const o3 = { c: 3 };

const obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 },目标对象本身发生了变化

合并具有相同属性的对象

{% note danger %} 属性会被后续参数中具有相同属性的其他对象覆盖。 - 使用场景可以是 form 表单提交参数合并的与源数据有重复的时候可以决定用哪一个

const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const o3 = { c: 3 };

const obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }

参考