美文网首页
深拷贝(复制)与浅拷贝(复制)

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

作者: Ama_deus | 来源:发表于2018-05-28 20:13 被阅读0次

对于字符串类型,浅复制是对值的复制,对于对象来说,浅复制是对对象地址的复制,并没有开辟新的栈,也就是复制的结果是两个对象指向同一个地址,修改其中一个对象的属性,则另一个对象的属性也会改变
而深复制则是开辟新的栈,两个对象对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性

1.通过递归深复制

var china = {
       nation : '中国',
       birthplaces:['北京','上海','广州'],
       skincolr :'yellow',
       friends:['sk','ls']
     }

     function deepCopy(o,c){
       var c = c || {}
       for(var i in o){
       if(typeof o[i] === 'object'){
                     if(o[i].constructor === Array){
                       //这是数组
                       c[i] =[]
                   }else{
                       //这是对象
                       c[i] = {}
                   }
                   deepCopy(o[i],c[i])
              }else{
                c[i] = o[i]
              }
          }
          return c
     }
     var result = {name:'result'}
     result = deepCopy(china,result)
     console.dir(result)

2.通过JSON转化

var test ={
        name:{
         xing:{ 
             first:'张',
             second:'李'
        },
        ming:'老头'
      },
      age :40,
      friend :['隔壁老王','宋经纪','同事']
     }
      var result = JSON.parse(JSON.stringify(test))
      result.age = 30
      result.name.xing.first = '往'
      result.friend.push('fdagldf;ghad')
      console.dir(test)
      console.dir(result)

相关文章

  • JS深浅拷贝

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

  • java 对象的拷贝

    拷贝:即复制 对象拷贝:即对象复制 java 对象拷贝分类:浅拷贝、深拷贝 java 对象的浅拷贝和深拷贝针对包含...

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

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

  • 17.是否了解 深拷贝 和 浅拷贝 的概念,集合类深拷贝如何实现

    深拷贝内存拷贝 浅拷贝指针拷贝 浅拷贝 深拷贝 集合的浅复制 (shallow copy) 集合的浅复制有非常多种...

  • iOS 深拷贝,浅拷贝

    深拷贝与浅拷贝 浅拷贝:浅拷贝并不拷贝对象本身,只是对指向对象的指针进行拷贝,并没有进行真正的复制,而是复制的对象...

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

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

  • 浅拷贝与深拷贝

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

  • 面试题iOS

    面试blog 1、深拷贝浅拷贝:浅拷贝就是拷贝对象的指针,而不复制引用对象本身;深拷贝就是拷贝引用对象本身;浅复制...

  • 浅拷贝与深拷贝

    拷贝 拷贝就拷贝 分什么浅深呀浅拷贝: 我就帮到你复制基本类型跟复制对象的地址 我就只能到这了深拷贝:那要是复制后...

  • Java的浅拷贝与深拷贝

    Java的浅拷贝与深拷贝 一、概念 浅拷贝浅拷贝仅仅复制所考虑的对象(包括对象中的基本变量),而不复制它所引用的对...

网友评论

      本文标题:深拷贝(复制)与浅拷贝(复制)

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