一行代码实现深拷贝?别再用 JSON.stringify 了!
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
在JavaScript开发中,对象的深拷贝是一个常见需求。很多开发者习惯使用 JSON.stringify 的致命缺陷
1. 无法处理循环引用
一旦对象中存在循环引用,这种方法就会直接抛出错误,导致程序崩溃。 2. 丢失特殊数据类型JSON序列化无法处理函数、Symbol、undefined,会将Date转为字符串,RegExp变为空对象,NaN和Infinity变为null。 3. 原型链丢失深拷贝后的对象变成了普通对象,失去了原型链上的所有方法和属性。 4. Map、Set、WeakMap、WeakSet 的处理这些集合类型在JSON序列化过程中都变成了空对象,数据完全丢失。 更可靠的深拷贝替代方案既然JSON方法这么多坑,那么有哪些更好的替代方案呢?现代浏览器提供了原生的结构化克隆API
优点:
缺点:
尽管 该文章在 2025/4/21 10:03:30 编辑过 |
关键字查询
相关文章
正在查询... |