// 对象浅拷贝
function objShallowCopy(obj){
var obj2 ={};
for(var i in obj){
obj2[i] = obj[i]
}
return obj2
}
// 对象深拷贝
function objDeepCopy(obj1,obj2){
var obj2 = obj2 || {} //最初的时候给他一个初始值=它自己或者一个json
for(var name in obj1){
if(typeof obj1[name] ==='object'){ // 先判断obj1[name]是不是对象
obj2[name] =(obj1[name].constructor === Array) ? [] : {} //将要复制的name项 = 数组或者json
objDeepCopy(obj1[name],obj2[name]) // 无线调用自己 递归思想
}else {
obj2[name] = obj1[name] // 如果不是对象 直接等于即可, 不发生引用关系
}
}
return obj2 //把复制好的对象return出去
}
js对象实现深浅拷贝!!
最新推荐文章于 2023-08-30 21:59:31 发布