美文网首页
深复制与浅复制

深复制与浅复制

作者: 别让我一个人醉_1fa7 | 来源:发表于2017-11-18 14:47 被阅读0次

概念:

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

实现:

  • 浅复制
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);

相关文章

  • 设计模式 - 原型模式

    注意深复制与浅赋值的问题 C#中如果需要实现深复制,必须实现 ICloneable 接口。

  • 深拷贝(复制)与浅拷贝(复制)

    对于字符串类型,浅复制是对值的复制,对于对象来说,浅复制是对对象地址的复制,并没有开辟新的栈,也就是复制的结果是两...

  • Java 浅拷贝和深拷贝 拷贝和复制

    Java 复制与拷贝 大纲 浅拷贝和深拷贝 浅拷贝就是复制对象的一个精确副本 ==对于基本数据类型就是复制值,对于...

  • Javascript对象的深浅拷贝

    开门见山,有人叫对象的复制为深复制浅复制,也有人叫深拷贝浅拷贝。其实都是copy。 深拷贝(递归复制,复制所有层级...

  • 浅|深 复制

    浅复制 //只写main函数 //结果是 我们可以看到一旦pointArray1发生了改变pointArray2也...

  • 前端笔记(二) 对象的深浅拷贝,函数的防抖与节流,函数柯里化 ,

    对象的深浅拷贝 对象的深拷贝与浅拷贝的区别: 浅拷贝:仅仅复制对象的引用, 而不是对象本身。 深拷贝:把复制的对象...

  • JS深浅拷贝

    浅拷贝 浅拷贝的意思就是只复制引用,而未复制真正的值。 深拷贝 深拷贝就是对目标的完全拷贝,不像浅拷贝那样只是复制...

  • 浅拷贝与深拷贝

    一 、基本概念 1.1 深拷贝 与 浅拷贝 对象拷贝有两种方式:浅复制和深复制。顾名思义,浅复制,并不拷贝对象本身...

  • 2018-01-06 关于javascript的深拷贝浅拷贝 思

    目录: 什么是复制? 一个简单的浅复制 一个深复制的例子 普遍的深浅复制的几种实现方法 深拷贝,浅拷贝什么是复制?...

  • python中复制,浅拷贝,深拷贝

    python中包含复制 浅拷贝与深拷贝 1.复制 复制没有拷贝子对象,未开辟新内存空间,也没有产生新object,...

网友评论

      本文标题:深复制与浅复制

      本文链接:https://www.haomeiwen.com/subject/zmmevxtx.html