深度复制

Posted you1you

tags:

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

clone=function(obj){//深克隆

    if(typeof(obj)=="object"){//如果obj是对象
      
          //var o= //有必要区分数组和普通对象
     
          Object.prototype.toString.call(obj)=="[object Array]"?[]:{};

          for(var key in obj){//遍历obj的自有属性
              //如果key是obj的自有属性
              if(obj.hasOwnProperty(key)){
                  o[key]=arguments.callee(obj[key]);//arguments.callee调的是当前的Object.clone函数
              }
          }

          return o;
      }else{//如果obj是原始类型的值,就直接返回副本
              return obj;
      }



    }


    var o  = [{a:1},[{b:2},{c:3}]];

    var d = clone(o);

    console.dir(d)

 

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

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

Android:使用支持片段管理器时复制片段

VsCode 代码片段-提升研发效率

为啥这个 CSS 片段可以画一个三角形? [复制]

从图库中获取图像以在片段中的图像视图中设置? [复制]

HTML代码片段