const cloneDeep = (data) => {
if (data instanceof Date) return new Date(data)
if (data instanceof Function) return new Function('return ' + data.toString()).call(undefined)
if (data instanceof RegExp) return new RegExp(data)
let target
if (Object.prototype.toString.call(data) === '[object Object]') target = {}
else if (Object.prototype.toString.call(data) === '[object Array]') target = []
else return data
for (const key in data) {
if (data.hasOwnProperty(key)) target[key] = cloneDeep(data[key])
}
return target
}
前端 万能深拷贝
于 2023-10-24 17:30:30 首次发布