码迷,mamicode.com
首页 > Web开发 > 详细

JS---对象的深拷贝

时间:2018-06-08 20:39:05      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:deepcopy   函数   turn   typeof   UNC   func   直接   ==   IV   

<script type="text/javascript">
        // 给每个对象定义一个深拷贝函数
        var deepCopy=function() {
            var t={};
            for(var k in this){
                //对于当前对象中的每个属性,判断其是否为引用类型
                if(typeof this[k]===‘object‘){
                    t[k]=this[k].deepCopy();//如果是引用类型,执行深拷贝
                }else{
                    t[k]=this[k];//如果不是,直接拷贝其属性
                }
            }
            return t;//返回深拷贝后的对象
        }
        
        var car={name:‘Benz‘};
        car.deepCopy=deepCopy;//给car对象添加deepCopy方法 
        var p1={name:‘Tom‘,age:19,car:car};
        p1.deepCopy=deepCopy;//给p1对象添加deepCopy方法 
        var p2=p1.deepCopy();
        p1.name=‘Json‘;
        p1.age=20;
        p1.car.name=‘Audi‘;
        console.log(p1);
        console.log(p2);
    </script>

 

JS---对象的深拷贝

标签:deepcopy   函数   turn   typeof   UNC   func   直接   ==   IV   

原文地址:https://www.cnblogs.com/beast-king/p/9157330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!