JS基础语法使用

1、Object.assign()

  1)Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。后面的同名源属性会覆盖前面的同名源属性

const target = { a: 1 };

const source1 = { b: 2 };
const source2 = { c: 3 };

Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}

 2)Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。

const obj1 = {a: {b: 1}};
const obj2 = Object.assign({}, obj1);

obj1.a.b = 2;
obj2.a.b // 2

上面代码中,源对象obj1a属性的值是一个对象,Object.assign拷贝得到的是这个对象的引用。这个对象的任何变化,都会反映到目标对象上面。

posted @ 2021-01-26 14:47  风露  阅读(65)  评论(0编辑  收藏  举报