• 深浅拷贝


     // 浅拷贝只拷贝最外一层,更深层次对象级别的只拷贝引用
        // 深拷贝拷贝多层,每一级别的数据都会拷贝
        var obj = {
          id: 1,
          name: 'tom',
          msg:{
            age: 18
          },
          color: ['pink', 'red'],
          add: null
        }
        var o = {}
        //    --  浅拷贝
        // for(var key in obj){
        //   o[key] = obj[key];
        // }
        // es6 浅拷贝的语法糖
        Object.assign(o, obj)
        console.log(o)
     
        // 封装函数   --  深拷贝
        var newCopy = {}
        function deepCopy(newObj, oldObj) {
          for(var key in oldObj){
            // 判断数值的数据类型
            var 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(newCopy, obj)
        console.log(newCopy)
       
         //  newCopy = JSON.parse(JSON.stringify(obj))
  • 相关阅读:
    数据库范式
    将DBF,XLS,XML,MDB文件导入C#DataGrid的方法
    在类文件中引用Server对象
    在使用了母版页的页面里加载css和js文件
    IIS 7.5 URL重写参数
    hdu Can you solve this equation?
    hdu Dome of Circus
    hdu Bone Collector
    hdu Turn the corner
    hdu 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  • 原文地址:https://www.cnblogs.com/J-Luck/p/12932187.html
Copyright © 2020-2023  润新知