码迷,mamicode.com
首页 > 其他好文 > 详细

深拷贝浅拷贝

时间:2019-08-17 10:58:35      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:复制   对象   就是   log   值拷贝   style   str   push   let   

 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>

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

 

深拷贝浅拷贝

标签:复制   对象   就是   log   值拷贝   style   str   push   let   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!