深拷贝是指,拷贝对象的具体内容,两个内存地址是自主分配的,拷贝结束之后两个对象虽然存的值是一样的,但是内存地址不一样,两个对象页互相不影响,互不干涉。
下面我们来看一下递归实现深拷贝的具体步骤。
var obj= {
"name":"豪豪",
"age":22,
"job":"程序员",
"height":175,
"type":{
"character":"tender"
}
}
obj.__proto__.say=function(){ };
首先创建一个新对象,循环赋值;
如果对象的属性值是对象,创建新对象,循环赋值。
function deepCopy(obj){
var copyObj={ };
for(var key in obj){
if(obj.hasOwnProperty(key) == true){
if(obj[key] instanceof Object){
copyObj[key] = deepCopy(obj[key])
}else{
copyObj[key] = obj[key]
}
}
}
return copyObj;
}
var obj2 = deepCopy(obj)
console.log(obj2)
打印出来的结果如下: