• 一、深拷贝和浅拷贝


      一、浅拷贝

      1、浅拷贝:浅拷贝的只是拷贝第一层,拷贝的类型分二种,一种是基础数据类型,那么这样直接拷贝,且修改后不会影响另外一个。另外一种拷贝的是一个对象或者数组等,那只是拷贝它的引用(地址),意味着如果被被拷贝/拷贝对象修改了一个对象的属性或者数组中的值,那么会影响到另外一个对象,这种现象称为浅拷贝。

      

      附代码

      

         let obj = {
                id :1,
                name:'YZengXin',
                msg:{
                    age:18
                }
            }
            let o = {};
            for (const key in obj) {
                o[key] = obj[key];
            }

      2、深拷贝:拷贝多层,每一层的数据都拷贝,但是和浅拷贝不同,深拷贝拷贝多层对象不是拷贝一个引用,而是基本类型,也就是说改了其中一个属性不会影响到另外一个

     function deepCopy(newObj,oldObj)
            {
                if(newObj == null){
                    newObj = {};
                }
    
                for (const key in oldObj) {
                    let item = oldObj[key];
                    if(item instanceof Array){
                        newObj[key] = {};
                        deepCopy(newObj[key],item);
                    }else if(item instanceof Object){
                        newObj[key] = {};
                        deepCopy(newObj[key],item);
                    }else{
                        newObj[key]  = item;
                    }
    
                }
    
            }
            deepCopy(o,obj);
    View Code

      

  • 相关阅读:
    C语言入门(16)——C语言的数组
    快速插入一百万行数据储存过程
    如何将两个表名对调
    MySQL规范
    MySQL运行环境部署规范
    mysql查看存储过程
    批量杀死MySQL连接的几种方法
    查看堵塞的SQL
    mysqldump备份脚本
    查看当前的数据和索引的总大小
  • 原文地址:https://www.cnblogs.com/Yzengxin/p/16075766.html
Copyright © 2020-2023  润新知