2026年js中的深拷贝和浅拷贝(js中的深拷贝和浅拷贝有什么区别)

js中的深拷贝和浅拷贝(js中的深拷贝和浅拷贝有什么区别)说说最近所学 浅拷贝和深拷贝也叫做浅克隆和深克隆 深浅主要针对的是对象的 深度 常见的对象都是 浅 的 也就是对象里的属性就是单个的属性 而 深 的对象是指一个对象的属性就是一个对象 也就是对象里面套对象 就像嵌套函数一样 为什么要使用深拷贝和浅拷贝 如果现有 var obj 这个对象 想复制对象 obj2



说说最近所学:浅拷贝和深拷贝也叫做浅克隆和深克隆,深浅主要针对的是对象的“深度”,常见的对象都是“浅”的,也就是对象里的属性就是单个的属性,而“深”的对象是指一个对象的属性就是一个对象,也就是对象里面套对象,就像嵌套函数一样。

为什么要使用深拷贝和浅拷贝?

如果现有var obj={....}这个对象,想复制对象obj2,一贯的做法就是obj2=obj1,这时虽然obj2拥有了obj1的所有属性,但obj2却不是自由的,因为它的改动会影响到obj1,obj1的改动也会直接影响到obj2,这不是我们所希望的。所以要用到深拷贝和浅拷贝。



浅拷贝和深拷贝就是为解决对象的直接赋值后依然“链接”的问题。也就是公用一个引用,一个改变会影响另一个。下面是常见的浅拷贝:

 
  

浅拷贝可以解决常见的对象,但倘若对象不是常见的那种呢?比如说对象里还有子对象,那么用浅拷贝就不够彻底,比如以下代码:

 
  

上面代码中,拷贝完成后更改了obj.a.son1,结果obj2.a.son1也随之改变,说明a依然存在公用同一个引用的现象,所以浅拷贝拷贝的并不彻底,不能彻底“挖到底” ,这时候深拷贝就该上场了,它能用递归的思想继续深挖,直到最底层为止。



下面就是深拷贝了:

 

通过上述代码可看出深拷贝拷贝的非常彻底,做到真正意义上的杜绝相同引用的问题。




今天的文章 2026年js中的深拷贝和浅拷贝(js中的深拷贝和浅拷贝有什么区别)分享到此就结束了,感谢您的阅读。




编程小号
上一篇 2025-05-28 15:27
下一篇 2026-02-04 09:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/39908.html