深拷贝浅拷贝

 

对象和对象的深拷贝    利用...进行对象的深拷贝

 1 <script>
 2        // 剩余参数...进行拷贝,这是深拷贝,新复制出来的对象和之前的对象不是一个地址
 3        var obj1={
 4              name:'zh',
 5              age:18,
 6              money:99999999999
 7        }
 8        var ojb2={...obj1}  
 9        ojb2.bb='yy'
10        console.log(ojb2)  // {name: "zh", age: 18, money: 99999999999, bb: "yy"}
11        console.log(obj1)  // {name: "zh", age: 18, money: 99999999999}
12 </script>

数组和数组的深拷贝  利用...进行数组的深拷贝

1 <script>
2       //  数组和数组的拷贝   利用...剩余参数
3 var arr1=[1,2,3]
4 var arr2=[...arr1]
5 arr2.push('yy')
6 console.log(arr2)  // [1, 2, 3, "yy"]
7 console.log(arr1)  // [1, 2, 3]
8 
9 </script>

              深拷贝

深拷贝方法——JSON.parse(JSON.stringfly())   以及 使用 ...剩余参数

JSON.parse()就是将JSON字符串解析成字符串描述的JavaScript值或对象

JSON.stringfy()JSON.parse()的反义,就是将一个JavaScript值(对象或者数组)转换为一个JSON字符串

对象和对象的深拷贝   

10 <script>
11                  //  对象与对象   深克隆
12 // 利用  JSON.parse和JSON.stringify 可以进行深克隆   
13 // JSON.stringify() 方法用于    将JavaScript 值转换为 JSON 字符串。
14       var obj1={
15             name:'zh',
16             age:18,
17             money:99999999999
18       }
19       var obj2=JSON.parse(JSON.stringify(obj1))
20       obj2.bb='yy'
21       console.log(obj2) //{name: "zh", age: 18, money: 99999999999, bb: "yy"}
22       console.log(obj1) // {name: "zh", age: 18, money: 99999999999}
23 
24 </script>

数组和数组的深拷贝

1 <script>
2        var arr1=[1,2,3]
3        var arr2=JSON.parse(JSON.stringify(arr1))
4        arr2.push('yy')
5        console.log(arr2) //[1, 2, 3, "yy"]
6        console.log(arr1) // [1, 2, 3]
7 </script>

 

 

 

原文地址:https://www.cnblogs.com/javascript9527/p/11367618.html