js 多种深拷贝方式 代码展示
时间: 2023-08-16 10:58:22 浏览: 71
浅拷贝和深拷贝案例的代码
当然可以!下面是几种常见的 JavaScript 深拷贝方式的代码示例:
1. 使用 JSON 序列化和反序列化:
```javascript
const obj = { foo: 'bar', nested: { num: 42 } };
// 使用 JSON.stringify 和 JSON.parse 进行深拷贝
const deepCopy = JSON.parse(JSON.stringify(obj));
console.log(deepCopy);
```
2. 使用递归实现深拷贝:
```javascript
function deepClone(obj) {
if (typeof obj !== 'object') {
return obj; // 非对象直接返回
}
const clone = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
clone[key] = deepClone(obj[key]); // 递归复制子对象
}
}
return clone;
}
const obj = { foo: 'bar', nested: { num: 42 } };
// 使用自定义的 deepClone 函数进行深拷贝
const deepCopy = deepClone(obj);
console.log(deepCopy);
```
3. 使用第三方库如 lodash 的深拷贝方法:
```javascript
const _ = require('lodash');
const obj = { foo: 'bar', nested: { num: 42 } };
// 使用 lodash 的 cloneDeep 方法进行深拷贝
const deepCopy = _.cloneDeep(obj);
console.log(deepCopy);
```
以上是三种常见的 JavaScript 深拷贝方式的代码示例。根据实际需求和场景选择适合的方式进行深拷贝。
阅读全文