function deeplone(obj){
let cpyobj;
let mp = new WeakMap();
if(typeof obj=='object'){
cpyobj = Array.isArray(obj) ? [] :{}
}else{
return obj;
}
if(mp.has(obj)){
return mp.get(obj)
}else{
mp.set(obj,cpyobj);
}
for(let key in obj){
cpyobj[key] = deeplone(obj[key])
}
return cpyobj;
}
// obj.obj=obj
// let obj={
// a:1,
// b:[1,2,3],
// c:{
// d:1,
// e:2
// },
// f:function(){
// console.log(this)
// }
// }
let obj = [[1,2,3],[1,[2,3,[4,5,6]]]]
let cpy = deeplone(obj);
console.log(cpy);
// cpy.d='d'
// console.log(obj.c,"obj")
console