stxxxxClone js最新深度克隆方法
时间: 2023-06-17 19:06:08 浏览: 55
在 JavaScript 中,可以使用以下代码实现深度克隆对象:
```javascript
function deepClone(obj) {
// 判断是否为对象
if (typeof obj !== 'object' || obj === null) {
return obj;
}
// 判断是否为日期对象
if (obj instanceof Date) {
return new Date(obj.getTime());
}
// 判断是否为正则表达式对象
if (obj instanceof RegExp) {
return new RegExp(obj);
}
// 判断是否为数组
if (Array.isArray(obj)) {
return obj.map(item => deepClone(item));
}
// 处理普通对象
const cloneObj = {};
Object.keys(obj).forEach(key => {
cloneObj[key] = deepClone(obj[key]);
});
return cloneObj;
}
```
该函数先判断传入的参数是否为对象,如果不是,则直接返回该参数;如果是对象,则根据类型进行不同的处理:
- 如果是日期对象,则返回新的日期对象;
- 如果是正则表达式对象,则返回新的正则表达式对象;
- 如果是数组,则对数组中每个元素进行递归调用,返回新的数组;
- 如果是普通对象,则对对象的每个属性进行递归调用,返回新的对象。
这样就可以实现深度克隆一个对象了。