深拷贝和浅拷贝的区别
1个回答
展开全部
一、概念
1、浅拷贝
浅拷贝只复制某个对象的引用,而不复制对象本身,新旧对象还是共享同一块内存
2、深拷贝
深拷贝会创造一个一摸一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对对象。
二、方法
1、浅拷贝
a、Object.assign()
Object.assign()方法可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。Object.assign()拷贝的是对象的属性的引用,而不是对象本身。
2、深拷贝
a、JSON转换
let newObj = JSON.parse(JSON.stringify(obj))。
缺点:
1) 如果对象有函数,函数无法被拷贝下来
2)无法拷贝对象原型链上的属性和方法
3)当数据的层次很深,会栈溢出
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询