function deepCopy(obj){
let type = Object.prototype.toString.call(obj)
if(type == "[object Array]"){
let backObj = [];
for(let val of obj){
backObj.push(deepCopy(val))
};
return backObj;
}
if(type == "[object Object]"){
let backObj = {};
for(let key in obj){
if(obj.hasOwnProperty(key)){
backObj[key] = deepCopy(obj[key])
}
};
return backObj;
}
return obj;
}
let testFn1 = function(data){
console.log("testFn11111函数")
}
let testFn2 = function(data){
console.log("testFn222222函数")
}
let obj = {
"key":"123",
"fn":testFn1,
"arr":["123",{
"key":'456',
"fn":testFn1,
}],
"reg":/123/g,
'date':new Date(),
};
let a = deepCopy(obj);
let b = deepCopy(obj);
console.log(a)
setTimeout(function(){
b.fn = testFn2;
b.arr[1].fn = testFn2;
b.reg = /789/g;
b.date = new Date();
console.log(b)
},2000)```