首页 > Web开发 > 详细

js对象深拷贝

时间:2018-06-21 15:13:21      阅读:206      评论:0      收藏:0      [点我收藏+]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    
</body>

<script>
    function deepCopy(obj){
        //确定入参啥数组还是对象
        var objArray = Array.isArray(obj) ? []:{};
        //obj存在,且类型为对象
        if(obj && typeof obj === ‘object‘){
            //遍历对象属性
            for(key in obj){
                //判断对象属性是否属于自身
                if(obj.hasOwnProperty(key)){
                    //判断obj子属性是否为对象,如果是,递归操作,否 将对象保存
                    if(obj[key] && typeof obj[key] === ‘object‘){
                        objArray[key] = deepCopy(obj[key])
                    }else{
                        objArray[key] = obj[key]
                    }
                }
            }
        }
        return objArray;
    }

    var obj1 = {
        nan:1,
        bei:null,
        dong:undefined,
        xi:{
            xinan:2,
            xibei:function(){
                let b = 2
            }
        },
        fn:function(){
            let a = 1;
        },
        a:[1,2]
    }
    var obj2 = deepCopy(obj1)
    console.log(obj1)
    obj2.xi.xinan = 5;
    console.log(obj2)
</script>
</html>

 

js对象深拷贝

原文:https://www.cnblogs.com/bigDipper/p/9209100.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!