js 深拷贝的方式
时间: 2023-07-08 07:10:08 浏览: 67
javascript深拷贝
在 JavaScript 中,实现深拷贝的方式有多种,下面介绍几种常用的方式:
1. 递归实现深拷贝
递归实现深拷贝是最常用的方式,具体实现可以参考上一个问题中提供的 `deepClone` 函数。
2. JSON.parse(JSON.stringify(obj))
这种方式利用了 JSON.stringify 和 JSON.parse 两个方法,先将对象转为 JSON 字符串,再将 JSON 字符串转为新的对象。该方式可以实现深拷贝,但是有一些限制:
- 不能拷贝函数、RegExp 等特殊对象;
- 不能解决循环引用的问题;
- 对象中如果有 undefined、NaN、Infinity 等特殊值会被转成 null。
示例代码:
```javascript
const newObj = JSON.parse(JSON.stringify(obj));
```
3. 使用第三方库
除了自己实现深拷贝函数之外,也可以使用第三方库,如 lodash 的 cloneDeep 方法。该方法可以实现深拷贝,并且处理了循环引用的问题。
示例代码:
```javascript
const _ = require('lodash');
const newObj = _.cloneDeep(obj);
```
需要注意的是,使用第三方库会增加代码的依赖性,同时也可能会增加代码体积。
阅读全文