/**
* 深拷贝
*
* @param {*} obj 数据
* @returns 深拷贝后对象
*/
const deepCopy = (obj) => {
// 当null NaN undefined number string等基本数据类型时直接返回
if (obj === null || typeof obj !== 'object') {
return obj
}
// Date类型
if (obj instanceof Date) {
const copy = new Date()
copy.setTime(obj.getTime())
return copy
}
// 正则类型类型
if (obj instanceof RegExp) {
const Constructor = obj.constructor
return new Constructor(obj)
}
// 如果是数组等引用数据类型
if (obj instanceof Array || obj instanceof Object) {
const copyObj = Array.isArray(obj) ? [] : {}
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
copyObj[key] = clone(obj[key])
}
}
return copyObj
}
}
export default deepCopy
JS深拷贝(日期对象+正则对象+通用)
最新推荐文章于 2023-12-21 17:37:33 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)