オブジェクトを再帰的に深くコピーする

4409 ワード

話を多くしないで直接コードを入れました.
<script>
        var obj = {
      //            
            name: "  ",
            age: 14,
            tel: 110,
            info: {
     
                isSingle: true
            }
        }
		//         
        function deepClone(params) {
     
            var obj = {
     }
            if(!(params instanceof Object)) return

            for(let key in params) {
     
                if(params[key] instanceof Object) {
     
                    obj[key] = deepClone(params[key])
                } else {
     
                    obj[key] = params[key]
                }
            }
            return obj
        }
		//     
        var obj2 = deepClone(obj)
        obj2.name = '  '
        obj2.info.isSingle = false
        console.log(obj, obj2)
    </script>