深拷贝浅拷贝
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>
以上都是 对象 和 数组 的深浅拷贝
以上是关于深拷贝浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章