深复制与浅复制

概念:

  • 浅复制与深复制都是只针对对象,数组,这些复杂类型。
  • 浅复制指的是复制一个对象的一层属性,如果对象,数组内嵌套有对象或数组则复制他们的指针,得到的新对象或数组在第一层次得属性上是独立的,但是在嵌套属性上是相互关联的。
  • 深复制是复制一个对象、数组的所有层级,得到的新对象、数组与原对象属性相同,但完全独立。

实现:

  • 浅复制
function shadowcopy(obj){
    var newObj = null;
    for(key in obj){
        newObj[key] = obj[key];
    };
    return newObj;
}
  • 深复制
function deepCopy(obj){
    var newObj = null;
    for(key in obj){
      if(typeof(obj[key])=="object"){
          newObj.key = deepCopy(obj[key])
      }else{
              newObj[key] = obj[key]
          };
    };
    return newObj;
}
  • 用 json 对象实现深复制
var newObj = JSON.parse(JSON.stringfy(obj);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在OC编程中,常常会用到对对象的复制,然后操作副本对象。然而对与应该选择何种对象复制的方式,复制后副本对象操作会不...
    Jiao123阅读 11,917评论 4 5
  • iOS 集合的深复制与浅复制 概念 对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是...
    难却却阅读 2,548评论 0 1
  • 概念对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直接...
    无尽思绪阅读 2,934评论 0 0
  • 概念 对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身,仅仅是拷贝指向对象的指针;深复制是直...
    liudhkk阅读 1,711评论 0 1
  • 本文摘自:https://www.zybuluo.com/MicroCai/note/50592 概念 对象拷贝有...
    Jimmy_阿达阅读 2,682评论 0 0

友情链接更多精彩内容