拷貝

JSON 拷貝

let result = JSON.parse(JSON.stringify(obj)) 深拷貝

Object.assign()
可枚舉的數(shù)據(jù)


 const obj = {}
      const obj1 = { name: 'tom' }
      const obj2 = { age: 34 }
      const obj3 = Object.assign(obj, obj1, obj2)
      console.log(obj3)
{name: 'tom', age: 34}
age: 34
name: "tom"

手寫深拷貝


        function deepClone (obj) {
            let newObj
            if (obj && typeof(obj) !== 'object') {
                newObj = obj
            } else if (obj && typeof(obj)  === 'object') {
                newObj = Array.isArray(obj) ? []: {}
                for(let key in obj) {
                    if (obj.hasOwnProperty(key)) {
                        if (obj[key] && typeof(obj[key]) === 'object') {
                            newObj[key] = deepClone(obj[key])
                        } else {
                            newObj[key] = obj[key]
                        }
                    }
                }
            }
    
            return newObj

        }


let test = {
    x : 1,
    y : 2,
    z : {
        a : 4,
        b : 5
    }
}
        
const result = deepClone(test)
test.x = 5
console.log(test,result)


{x: 5, y: 2, z: {…}} {x: 1, y: 2, z: {…}}
      
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容