浅拷贝和深拷贝

浅拷贝
         function copy(obj) {
           let newobj = {}
         for (let i in obj) {
               newobj[i] = obj[i]
          }
          return newobj
     }
         let obj1 = {
             name: '小米',
             age: 2,
        }
         let obj2 = copy(obj1)
         obj2.name = '小红'
         console.log(obj1)
       console.log(obj2)
      深拷贝
        function copy(obj) {
            let newobj = {}
            for (let i in obj) {
                if (obj[i] instanceof Object) {
                    newobj[i] = copy(obj[i])
                } else {
                    newobj[i] = obj[i]
                }
            }
            return newobj
        }
        //通过JSON的stingify和parse方法实现深度拷贝
        function copy(obj) {
            let newobj = JSON.stringify(obj)
            return JSON.parse(newobj)
        }
        let obj1 = {
            name: '小米',
            age: 2,
            girlFriend: {
                name: '小红'
            }
        }
        let obj2 = copy(obj1)
        obj2.girlFriend.name = '小花'
        console.log(obj1)
        console.log(obj2)
posted @ 2022-08-16 18:46  就挺秃然的  阅读(11)  评论(0)    收藏  举报