语法:
Object.assign(target, ...sources)//target目标对象,sources源对象,返回值目标对象
使用说明:
- 如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。
-
String
类型和Symbol
类型的属性都会被拷贝。 目标对象自身也会改变
- 针对深拷贝,需要使用其他办法,因为
Object.assign()
拷贝的是属性值。假如源对象的属性值是一个对象的引用,那么它也只指向那个引用 - 继承属性和不可枚举属性是不能拷贝的
深拷贝
obj1 = { a: 0 , b: { c: 0}}; let obj3 = JSON.parse(JSON.stringify(obj1)); obj1.a = 4; obj1.b.c = 4; console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}}