javascript JS中如何实现深复制?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript JS中如何实现深复制?相关的知识,希望对你有一定的参考价值。

function getCopyOfObj(obj){
    let newObj = {}
    for(key in obj){
        if(typeof(obj[key]) != "object"){   //如果是值类型,直接赋值
            newObj[key] = obj[key]
        }else if(obj[key] instanceof Array){  //数组类型
            newObj[key] = []
            obj[key].forEach(ele => {
                newObj[key].push(ele)
            })
        }else {
            newObj[key] = getCopyOfObj(obj[key])  //其他对象类型
        }
    }
    return newObj
}

let obj = {
    tag:"ul",
    attrs:{
        key:"111",
        "class":"ulclass"
    },
    innerText:"innerText",
    children:[
        {
            tag:"li",
            attrs:{
                id:"aaa"
            },
            innerText:"1111"
        },{
            tag:"li",
            attrs:{
                id:"bbb"
            },
            innerText:"222"
        }
    ]
}
let newObj = getCopyOfObj(obj)
console.log(obj,newObj)

以上是关于javascript JS中如何实现深复制?的主要内容,如果未能解决你的问题,请参考以下文章

javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法

Javascript 浅复制与深复制

js深拷贝

拷贝数组和对象,深拷贝,浅拷贝

JS JavaScript深拷贝浅拷贝

JS-拷贝对象