function deepclone(source){
if(source == null||typeof source !== 'object' ||
source instanceof Date || source instanceof RegExp){
return source;
}
// if(typeof source !== 'object'){
// return source;
// }
let obj=Array.isArray(source)?[]:{}
for(key in source){
if(source.hasOwnProperty(key)){
obj[key]=deepclone(source[key])
}
}
return obj
}
let z = {
a: 1,
b: { f: { g: 1 } },
c: [1, 2, 3]
}
z2=deepclone(z)
z2.b.f=3
console.log(z)