zoukankan      html  css  js  c++  java
  • 深拷贝浅拷贝

     

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

     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>

     

     

     

  • 相关阅读:
    luogu3242 接水果 (整体二分+树状数组)
    [BZOJ3449] [Usaco2014 Feb]Secret Code
    [BZOJ2821] 作诗(Poetize)
    [BZOJ2434] [Noi2011]阿狸的打字机
    [BZOJ1212] [HNOI2004]L语言
    [JZOJ100026]【NOIP2017提高A组模拟7.7】图
    [BZOJ2467] [中山市选2010]生成树
    [Luogu3868] [TJOI2009]猜数字
    [POJ1006] Biorhythms
    [BZOJ2733] [HNOI2012]永无乡
  • 原文地址:https://www.cnblogs.com/javascript9527/p/11367618.html
Copyright © 2011-2022 走看看