Object.assign部分更新
是在目标对象的引用地址的基础上更新,也就是说被更新的对象也会改变
var obj= {name: 'a'}
var obj1 = {name: 'b'}
let o =Object.assign(obj,obj1)
console.log(o) //{name: "b"}
console.log(obj)//{name: "b"}
假如源对象的属性值是一个对象的引用,那么它也只指向那个引用。
比如:
var source1 = {a: 1,b:{c:11}}
var source2 = {a: 2, b: {c:22}}
var target = {a: 3, b: {c:33}}
target = Object.assign(target, source1,source2)
source2.b.c=44
console.log(target.b.c) //44
上面的源对象source1和source2中的b存的是对象的引用,所以会target里的b也会指向对应的引用,当对source2.b.c更改的时候也就是对当前引用修改,所以target里的b也会跟着修改