深度克隆

Posted fhzm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度克隆相关的知识,希望对你有一定的参考价值。

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 }

 

以上是关于深度克隆的主要内容,如果未能解决你的问题,请参考以下文章

Forge Viewer - 如何在场景中访问(或获取渲染/片段代理)克隆的网格?

js深度克隆对象

js 递归实现深度克隆与浅克隆

对象(poco)深度克隆

谈谈js中深度克隆和浅度克隆

Instagram 克隆。单击按钮时,为啥我不能回到上一个片段?