function deepclone(target) {
JSON.parse(JSON.stringify(target));
}
function deepclone(target) {
let cloneTarget = {}
Ï for (const key in target) {
cloneTarget[key] = target[key]
}
return cloneTarget
}
function deepclone(target) {
if (typeof target !== 'object') {
return target
}
let cloneTarget = {}
Ï for (const key in target) {
cloneTarget[key] = deepclone(target[key])
}
return cloneTarget
}
function deepclone(target) {
if (target === null ) return target;
if (target instanceof Date ) return new Date(target)
if (target instanceof RegExp ) return new RegExp(target)
if (typeof target !== 'object') {
return target
}
let cloneTarget = new target.constructor()
Ï for (const key in target) {
cloneTarget[key] = deepclone(target[key])
}
return cloneTarget
}
function deepclone(target) {
if (target === null ) return target;
if (target instanceof Date ) return new Date(target)
if (target instanceof RegExp ) return new RegExp(target)
if (typeof target !== 'object') {
return target
}
let cloneTarget = new target.constructor()
Reflect.ownKeys(target).forEach((key) => {
cloneTarget[key] = deepclone(target[key])
})
return cloneTarget
}
function deepclone(target, hash = {}) {
if (target == null) return target;
if (target instanceof Date ) return new Date(target)
if (target instanceof RegExp ) return new RegExp(target)
if (typeof target !== 'object') return target;
if (hash[target]) {
return hash[target]
}
let cloneTarget = new target.constructor()
hash[target] = cloneTarget
Reflect.ownKeys(target).forEach((key) => {
cloneTarget[key] = deepclone(target[key], hash)
})
return cloneTarget
}
function deepclone(target, hash = new WeakMap()) {
if (target == null) return target;
if (target instanceof Date ) return new Date(target)
if (target instanceof RegExp ) return new RegExp(target)
if (typeof target !== 'object') return target;
if (hash.get(target)) return hash.get(target)
let cloneTarget = new target.constructor()
hash.set(target, cloneTarget)
Reflect.ownKeys(target).forEach((key) => {
cloneTarget[key] = deepclone(target[key], hash)
})
return cloneTarget
}
写在最后,浏览器其实有自己的深拷贝函数
let obj3 = structuredClone(obj);