zoukankan      html  css  js  c++  java
  • 原生JS封装深拷贝函数

    封装一个深拷贝的函数

    function DeepCopy(newObj, oldObj) {
        for(let 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
             }
         }
    }
    

    实例:

    let old = {
          name: 'james',
          age: 35,
          now: {
             team: 'lakers'
          },
          play: ['骑士', '热火', '湖人']
    }
    let new1 = {}
    DeepCopy(new1, old)
    console.log(new1)
    
    /*  打印出
    >{name: "james", age: 35, now: {…}, play: Array(3)}
    age: 35
    name: "james"
    now: {team: "lakers"}
    play: (3) ["骑士", "热火", "湖人"]
    __proto__: Object
    */
    
  • 相关阅读:
    杂题
    jzoj5679
    CF434E
    jzoj6152
    jzoj6150
    mysql 第06章 运算符
    mysql 第05章 数据类型
    mysql 第04章 SQL语句
    mysql 第03章 体系结构
    mysql 第02章 基本操作
  • 原文地址:https://www.cnblogs.com/xyf724/p/13236951.html
Copyright © 2011-2022 走看看