- 在下觉得深克隆就是让引用类型的value值从赋址变成赋值
let obj ={
name:"xxxx",
arr:[1]
}
function deepClone(data){
let type = Object.prototype.toString.call(data)
if(type!=='[object Array]'&&type!=='[object Object]') return null;
let result = Array.isArray(data)?[]:{};
for(let key in data){
if(data.hasOwnProperty(key)){
if(typeof data[key] === 'object'&&data[key]!==null){
result[key] = deepClone(data[key])
}else{
result[key] = data [key]
}
}
}
return result
}
let arr = deepClone(obj)
arr.arr.push(2)
console.log(arr,obj);

当然有种简单的方法:JSON.parse(JSON.stringify());undefined、function、symbol 会被忽略;