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

     // 浅拷贝只拷贝最外一层,更深层次对象级别的只拷贝引用
        // 深拷贝拷贝多层,每一级别的数据都会拷贝
        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))
  • 相关阅读:
    SQL try catch处理
    JAVA学习书籍
    JAVA中jar包和war包的区别是
    tomcat webapps 是什么
    JAVA使用Gson解析json数据,实例
    java 返回json格式的数据
    目前常见的三种SQL分页方式:
    Eclipse如何新建一个tomcat_server发布web项目
    SQLHelper--java类
    编写jsp代码时出现的红色提示线错误
  • 原文地址:https://www.cnblogs.com/J-Luck/p/12932187.html
Copyright © 2011-2022 走看看