zoukankan      html  css  js  c++  java
  • 深度克隆一个对象的方法

    /*克隆一个对象*/

    方法一、
    Object.prototype.deepClone=function(){
      var buf;
      if (this instanceof Array) {
        buf = []; //创建一个空的数组
        var i = this.length;
        while (i--) {
          buf[i] = clone(this[i]);
        }
        return buf;
      }else if (this instanceof Object){
        buf = {}; //创建一个空对象
        for (var k in this) { //为这个对象添加新的属性
          buf[k] = deepClone(this[k]);
        }
        return buf;
      }else{
        return Obj;
      }
    }

    方法二、

    Object.prototype.deepClone=function(){

      var obj=this.constructor=='Array'?[],{};

      //var obj=(this instanceof Object)?[],{};

      for(var key in this){

        obj[key]=typeof(this[key])=='Object'?this[key].deepClone(),this[key];

      }

      return obj;

    }

    方法三、

    Object.prototype.deepClone=function() { 
        function cloneObj(){}
        cloneObj.prototype=this;     
      var obj=new cloneObj();  
      for(var o in obj){
        if(typeof(obj[o])=="object")
        obj[o]=obj[o].deepClone();
        }  
      return obj;

  • 相关阅读:
    超详细JSON解析步骤
    HTTP请求头和响应头总结
    Oracle 数据库常用操作语句大全
    关于HTTP协议,一篇就够了
    PowerDesigner工具建表步骤
    求助:ACM剑气算法
    一道题
    个人Java学习中的遇到的几个模糊的地方
    Java编程:数学黑洞6174
    高级查询
  • 原文地址:https://www.cnblogs.com/cdwp8/p/4040017.html
Copyright © 2011-2022 走看看