深浅拷贝

2024/03/21 JavaScript 共 355 字,约 2 分钟

深拷贝

相较于“浅克隆”,“深克隆”方式占用的空间更大、性能更差,因为它不得不递归遍历引用类型的数据。而当数据结构中出现循环引用,或者属性之间相互引用时,简单地针对数据类型进行判断可能无法得到正确的“深克隆”结果

Immer.js 代理+递归浅克隆”的方式来实现“按需克隆”的方案。从代码的实现上来看,作为代理的对象至少需要包含以下几个关键属性

mmutable.js的基本原理就是将JavaScript的原生数据类型放入新的数据结构中从而实现基于共享结构的持久化数据。

在“持久化数据结构”中进行set操作时,会在修改的节点处生成新的克隆节点,接着会寻找其父节点,直到找到根节点为止,在上溯过程中会复制其经过路径上的所有节点,最终得到一个新的根节点,新旧根节点只有在set操作影响的路径上存在差异,其他节点都是共享的。


在技术的历史长河中,虽然我们素未谋面,却已相识已久,很微妙也很知足。互联网让世界变得更小,你我之间更近。

在逝去的青葱岁月中,虽然我们未曾相遇,却共同经历着一样的情愫。谁的青春不曾迷茫或焦虑亦是无奈,谁不曾年少过

在未来的日子里,让我们共享好的文章,共同学习进步。有不错的文章记得分享给我,我不会写好的文章,所以我只能做一个搬运工

我叫 sunseekers(张敏) ,千千万万个张敏与你同在,18年电子商务专业毕业,毕业后在前端搬砖

如果喜欢我的话,恰巧我也喜欢你的话,让我们手拉手,肩并肩共同前行,相互学习,互相鼓励

文档信息

Search

    Table of Contents