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

     1 function clone(obj) {
     2         var buf;
     3         if(obj instanceof Array){  //被克隆的对象是数组
     4             buf = [];
     5             var i = obj.length;
     6             while(i--){
     7                 buf[i] = clone(obj[i]);
     8             }
     9             return buf;
    10         }else if(obj instanceof Object){  //被克隆的对象是对象
    11             buf = {};
    12             for (var k in obj){
    13                 buf[k] = clone(obj[k]);
    14             }
    15             return buf;
    16         }else{
    17             return obj;    //被克隆的是普通类型
    18         }
    19     }
    20     
    21     
    22     function F (){
    23         this.name = "liu",
    24         this.color = ["red","green"],
    25         this.friends = {
    26             first : "yangyi",
    27             second : "koukou"
    28         }
    29     }
    30     var f = new F();
    31     var fClone = clone(f);
    32     console.log(fClone.friends);  //{first: "yangyi", second: "koukou"}
    33     console.log(fClone.colors);  //["red","green"]
    34     console.log(fClone.name);    //"liu"
  • 相关阅读:
    Rest
    docker-4
    Arrays.asList
    docker-3
    docker
    docker
    linux-ss
    jackson
    Java将图片的路径转为Base64,VUE前端显示
    java base64视频存到本地或服务器
  • 原文地址:https://www.cnblogs.com/webliu/p/4640835.html
Copyright © 2011-2022 走看看