首先,我们定义了一个对象 ,其中包含了一个名为 "rust" 的字符串、一个年龄为 12 的数字,以及一个内部对象 ,包含了一个 id 为 1 的数字。接着,我们进行了浅拷贝和深拷贝操作,并对拷贝后的对象进行了一系列修改操作。
- 浅拷贝:通过 实现,创建了 对象。当修改 中栈存储数据字段时(例如 ),原始对象 不受影响,因为 和 的栈存储数据是相互独立的。但是当修改 中的堆存储数据字段(例如 )时,原始对象 也会受到影响,因为 和 共享相同的堆存储数据。
- 深拷贝:通过 实现,创建了 对象。深拷贝会创建一个完全独立的对象,包括栈存储数据和堆存储数据,因此无论对 进行怎样的修改,都不会影响原始对象 。
因此,通过打印上述代码中输出的 JSON 字符串,可以看到对 、 和 进行不同修改所产生的影响。
浅拷贝堆上数据会共享,栈上数据不共享
深拷贝后的对象和原对象是两个不同的对象,所有数据不共享。
到此这篇js深拷贝和浅拷贝概念(js深拷贝和浅拷贝概念区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qdvuejs/49962.html