介绍下深拷贝、浅拷贝,两者区别,object.assign 是哪种?
题干
- 深拷贝、浅拷贝
- object.assign
题解
浅拷贝 只复制对象的引用,而不是对象本身,因此复制后的对象和原对象共享同一个引用类型的属性,修改其中一个对象的引用类型属性会影响到另一个对象的属性值。
深拷贝 则是创建一个新的对象,完全复制原对象的所有属性值,包括引用类型的属性值,因此修改其中一个对象的引用类型属性不会影响到另一个对象的属性值。
Object.assign()
是浅拷贝,它将源对象的所有可枚举属性复制到目标对象中,如果属性值是引用类型,则复制的是引用,而不是对象本身。Object.assign()
拷贝的是(可枚举)属性值。