码迷,mamicode.com
首页 > 其他好文 > 详细

深度克隆

时间:2020-07-26 01:22:31      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:ons   tar   prototype   const   ||   span   ceo   null   ret   

function deepClone(orign,target){
    // 1判断是不是原始值
    // 2,判断是数组还是对象选用toString的原因是因为instanceof和constructor有一个父子域的问题
    // 3,建立相应的数组或对象
    var target=target||{},
        toStr=Object.prototype.toString,
        arrStr="[object Array]";
        for(var prop in orign){
            if(orign.hasOwnProperty(prop)){
                if( orign[prop] !=="null" && typeof(orign[prop])==‘object‘){
                    if(toStr.call(orign[prop]==arrStr){
                        target[prop]=[];
                    }else{
                        target[prop]={}; 
                    }
                    deepClone(orign[prop],target[prop]);
                }else{
                    target[prop]=orign[prop];
                }
            }
        }
  return target }

 

深度克隆

标签:ons   tar   prototype   const   ||   span   ceo   null   ret   

原文地址:https://www.cnblogs.com/fhzm/p/13378053.html

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