<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>深拷贝</title>
</head>
<body>
</body>
<script>
var obj = {
name : '张三',
hobby : ['吃饭','睡觉','打豆豆'],
address : {
newadd : '合肥'
}
}
var newobj = []
function demo(newobj,obj){
for (let key in obj) {
let value = obj[key]
if(obj[key] instanceof Array){ //如果是数组类型
newobj[key] = [] //开辟新的内存空间
demo(newobj[key] , value)
}else if(obj[key] instanceof Object){ //如果是对象类型
newobj[key] = {} //开辟新的内存空间
demo(newobj[key] , value)
}else{ //如果是基本数据类型,直接赋值
newobj[key] = value
}
}
}
demo(newobj,obj)
obj['hobby'].push('学习')
console.log(newobj);
// 执行原理 : 注意 obj[key] 等同于 obj.key ,这里的key是动态的
// 第一次执行 key是name ,即obj[key] =&#
深拷贝中递归方法的解释
猜你喜欢
转载自blog.csdn.net/tea_tea_/article/details/127934473
今日推荐
周排行