zoukankan      html  css  js  c++  java
  • 关于堆栈,深拷贝,浅拷贝的理解

    栈:自动分配内存空间,存基本数据,占据一定的内存大小

    堆:存引用类型的值。但是会在栈中开辟一定的空间,存储相应的堆中的地址

    浅拷贝:基本类型数据的复制,引用类型直接复制(拷贝的是内存地址) 

               

    深拷贝:将对象从内存中 完整的拷贝一份出来,从堆内存中开辟一个新的区域存放 新对象,两个对象相互独立

               常用方法:JSON.stringfy()

     object.assign()   一层是深拷贝   二层后就是浅拷贝

     // 一层深拷贝
        var obj = {};
        var source = {
          a:1
        };
        let newobj = Object.assign(obj ,source)
        source.a = 2;
        console.log('source',source); //{a:2}
        console.log('obj',obj); //{a:1}
        console.log('newobj', newobj)
        
        // 二层浅拷贝
        var obj1 = {
          a: {
            b: 1
          }
        }
        var obj2 = {};
        Object.assign(obj2,obj1)
        obj1.a.b = 2;
        console.log('obj1',obj1);  // {b:2}
        console.log('obj2',obj2);  //{b:2}
  • 相关阅读:
    最大子数组1
    大道至简阅读笔记03
    I-think-3
    第3周学习进度
    大道至简阅读笔记02
    四则运算题3
    大道至简阅读笔记01
    第2周学习进度
    构建之法阅读笔记03
    按Right-BICEP的测试用例
  • 原文地址:https://www.cnblogs.com/bm20131123/p/12881579.html
Copyright © 2011-2022 走看看