对象和对象的深拷贝 利用...进行对象的深拷贝
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