浅拷贝 和 深拷贝 一点笔记

我们在把一个对象赋值给一个变量之后,两者的值会有一个共同的引用,一个改变了,会让另一个也跟着改变。为了解决这个问题,我们引入了浅拷贝和深拷贝。

浅拷贝:方法:Object.assign() 或者用扩展运算符 ... 或者来实现,但是浅拷贝只是解决了第一层引用的问题,如果某个对象A里边还存在对象,那么这些对象还是会存在引用问题。那么就需要用深拷贝来解决了。

深拷贝:深拷贝会在计算机中另开一块内存来存放某个对象B的所有引用,改变B的值对象A不会受到影响。

var objB = JSON.parse(JSON.stringify(objA));  或者  var objB = $.extend(true, {}, objA);


||  $.extend(false, {}, objA),如果参数是false(默认是false),那么这也是浅拷贝的一种方法,同样也是只能解决第一层引用问题

猜你喜欢

转载自blog.csdn.net/qq_24331363/article/details/84936840