如何js实现对象深拷贝
时间: 2023-02-08 14:29:14 浏览: 84
JavaScript中实现对象深拷贝的方法有多种。
1. 使用JSON.parse()和JSON.stringify()。先使用JSON.stringify()将对象转化为字符串,再使用JSON.parse()将字符串转化为对象。
```
let obj = {a: 1, b: {c: 2}};
let copy = JSON.parse(JSON.stringify(obj));
```
2. 使用ES6的Object.assign()方法
```
let obj = {a: 1, b: {c: 2}};
let copy = Object.assign({}, obj);
```
3. 使用lodash库中的_.cloneDeep()方法
```
let obj = {a: 1, b: {c: 2}};
let copy = _.cloneDeep(obj);
```
4. 递归实现
```
function deepClone(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let clone = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
clone[key] = deepClone(obj[key]);
}
}
return clone;
}
let obj = {a: 1, b: {c: 2}};
let copy = deepClone(obj);
```
这些方法都能够实现对象的深拷贝,但是在性能、兼容性等方面有所差异,请根据需要选择合适的方法。