let obj1 = {
name:"kevin",
age:"26",
frineds:{
address:"通州",
number:1553086
},
a:[1,2,3]
}
let obj2 = deepClone(obj1)
obj1.name="jack"
console.log(obj2.name)
//深拷贝函数
function deepClone(obj){
if(typeof obj !== "object"|| typeof obj == null){
return obj //判断不是对象就直接返回
}
let result
if(obj instanceof Array){
result=[]//判断是不是数组
}else{
result = {}
}
for(let key in obj ){
if(obj.hasOwnProperty(key)){
result[key]=deepClone(obj[key])//实现递归
}
}
return result
}
实现深拷贝的第二种方法
//对象转换为字符串 引用类型变为基本类型
let obj1={a:1,b:{
x:100,
y:200
},c:300,d:["1","3"]}
let obj2=JSON.parse(JSON.stringify(obj1))
obj2.b.x=200
console.log(obj1)
console.log(obj2)