深拷贝浅拷贝

Posted javascript9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深拷贝浅拷贝相关的知识,希望对你有一定的参考价值。

 1                                 浅拷贝
  <script> 2 // Object.assign() 是浅拷贝, 对象和数组都可以用 3 4 const obj1 = 5 a: 1, 6 b: 2, 7 c: 3 8 ; 9 //将obj1的值拷贝到obj2中,并添加一个新的属性值 10 const obj2 = Object.assign(obj1,d:‘周浩‘); 11 console.log(obj2) //a: 1, b: 2, c: 3, d: "周浩" 12 console.log(obj1) //a: 1, b: 2, c: 3, d: "周浩" 13 14 </script>

 

 1                   深拷贝

<script> 2 3 // 剩余参数...进行拷贝,这是深拷贝,新复制出来的对象和之前的对象不是一个地址 4 var obj1 = 5 a: 1, 6 b: 2, 7 c: 3 8 ; 9 10 var obj2 = ...obj1; 11 obj2.d=‘周浩‘ 12 13 console.log(obj1) //a: 1, b: 2, c: 3 14 console.log(obj2); //a: 1, b: 2, c: 3, d: "周浩" 15 16 17 </script>

 

              深拷贝

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

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

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

<script>
            //  对象   深克隆
// 利用  JSON.parse和JSON.stringify 可以进行深克隆   
// JSON.stringify() 方法用于    将javascript 值转换为 JSON 字符串。
let obj1 = 
  a: 1,
  b: 2,
  c: 3

let obj2 =JSON.parse( JSON.stringify(obj1)); 
obj1.d=‘周浩‘
console.log(obj2)  //a: 1, b: 2, c: 3
console.log(obj1)  //a: 1, b: 2, c: 3, d: "周浩"

</script>

 

           深拷贝

<script>
            //  数组深克隆
// 利用  JSON.parse和JSON.stringify 可以进行深克隆  
// JSON.stringify() 方法用于    将JavaScript 值转换为 JSON 字符串。
let arr1 = [1,2,3]
let arr2 =JSON.parse( JSON.stringify(arr1)); 
arr2.push(‘周浩‘)
console.log(arr2)       // [1, 2, 3, "周浩"]
console.log(arr1)       // [1, 2, 3]


</script>

以上都是  对象  和 数组 的深浅拷贝

 

以上是关于深拷贝浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

IOS 深拷贝和浅拷贝

VUE开发 - 深拷贝与浅拷贝探讨

什么是深拷贝和浅拷贝以及如何实现深拷贝

深拷贝和浅拷贝的区别?

Python3 & 浅拷贝与深拷贝

C#的浅拷贝和深拷贝