zoukankan      html  css  js  c++  java
  • js深度克隆

    function highClone(oldObj){

      var cloneObj;

      if(oldObj.constructor==Object || oldObj.constructor==Array){
        cloneObj=new oldObj.constructor;
      }else{
        cloneObj=new oldObj.constructor(oldObj.valueOf());//个人认为这样没什么用,因为克隆方法用于复制对象,其他实例不适用,此处还不如换成return
      }

      for(var i in oldObj){

        if(typeof oldObj[i]=="object"){
          cloneObj[i]=highClone(oldObj[i]);
        }else{
          cloneObj[i]=oldObj[i];
        }  
      }
      cloneObj.toString=oldObj.toString;
      cloneObj.valueOf=oldObj.valueOf;

      return cloneObj;
    }

    //测试

    var testObj={"1":[1,2,3],"2":{"aa":"aa","bb":"bb"},"3":function(){var dd="";}};
    var testArr=[[1,2,3],{"aa":"aa","bb":"bb"},function(){var dd="";}];


    var arrClone=highClone(testArr);
    var ObjClone=highClone(testObj);

  • 相关阅读:
    索引
    convert 时间转换
    SQL中的case when then else end用法
    SVN安装图解
    dos 命令
    阿里云服务器相关知识
    mvc知识应用
    MVC分页
    mvc系统过滤器
    .net 接口
  • 原文地址:https://www.cnblogs.com/byit/p/3651721.html
Copyright © 2011-2022 走看看