深度克隆

深度克隆

   如何引用已有的对象,建立一个新的对象,当然前提是已有对象的属性和要建立的对象的属性深度重合,这样就可以方便的用了,为了使两个对象的属性不相互干扰包括引用值,就简单学习了一下深度克隆。

这样,完成之后就可以放心的克隆已有对象,果然“懒惰是人类进步的阶梯”,哈哈哈。
小白一枚,如有错误,多谢指正。

<script>
        var obj = {
            name : "dexin",
            age : 20,
            car : ["BMW","Matalaze","Bujiadi"],
            wife : {
                naem : "xiaomeng",
                age : 21,
                son : {
                    name : "zhengde",
                    age : 10,
                }
            }
        }
        var obj1 = {};

        function DeepClone(origin, target) {
            var target = target || {},
                toStr = Object.prototype.toString,
                arrStr = "[object Array]";
            for(var prop in origin){
                if(origin.hasOwnProperty(prop)){
                   if(origin[prop] !== "null" && typeof(origin[prop]) == "object"){
                    if(toStr.call(origin[prop]) == arrStr){
                        target[prop] = [];
                    }else{
                        target[prop] = {};
                    }
                    DeepClone(origin[prop], target[prop]);
                }else{
                    target[prop] = origin[prop];
                } 
                }               
            }
            return target;  
        }

         DeepClone(obj, obj1);
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值