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;

  • 相关阅读:
    ubuntu android jdk问题
    android adb ubuntu问题
    常用命令
    svn info
    TaskRecord分析
    moveTasktoBack 把当前任务放入后台
    WatchDog机制
    双系统安装
    制作安装U盘
    android 小游戏 ---- 数独(二)
  • 原文地址:https://www.cnblogs.com/cdwp8/p/4040017.html
Copyright © 2011-2022 走看看