总结:
目标对象=源对象
=
1. 相当于引用,“你变我也变”
Object.assign()
1.当源对象中属性是对象时,
“属性:你变我不变,属性对象中的值:你变我也变”
2.当源对象中属性不是对象时,“你变我不变”
JSON.parse(JSON.stringify(g))
"你变我不变“”
注意事项:
1.如果对象的属性值为简单类型(string,number),通过Object.assign({},obj);得到的新对象为深拷贝;如果属性值为对象或其他引用类型,那对于这个对象而言其实是浅拷贝的
2.Object.assign({},obj1,obj2);对于obj1和obj2之间相同的属性是直接覆盖的,如果属性值为对象,是不会对对象直接的属性进行合并的。
3.Object.assign不会在那些源对象值为null或undefined的时候抛出错误.
----以下是个人理解,仅供参考,可在评论区提出您的意见