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

    /**
     * 深拷贝
     * @param {Object} obj 要拷贝的对象
     */
    function deepClone(obj ={}){
        if(typeof obj !== 'object'|| obj == null){
            //obj不是对象或者是null,直接返回
            return obj
        }
    
        //初始化返回结果
        let result
        if(obj instanceof Array){
            result = []  //数组
        }else{
            result = {}  //对象
        }
        
        for(let key in obj){
            //保证key不是原型的属性
            if(obj.hasOwnProperty(key)){
                //递归调用
                result[key] = deepClone(obj[key])
            }
        }
        return result
    }
    const obj1 = {
        age : 20,
        name : 'xxx',
        address : {
            city : 'beijing'
        },
        arr:['a','b','c']
    }
    
    const obj2 = deepClone(obj1)
    obj2.address.city ='shanghai'
    console.log('obj1.address.city:' + obj1.address.city)
    console.log('obj2' + JSON.stringify(obj2))

    运行结果:

  • 相关阅读:
    Dvwa——环境部署
    DVWA--简介
    华为OSPF与ACL综合应用
    ensp综合题二
    ensp综合题一
    OSPF
    静态路由
    生成树
    Vlan
    2020.07.28【省选B组】模拟 总结
  • 原文地址:https://www.cnblogs.com/marshhu/p/11939863.html
Copyright © 2011-2022 走看看