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}
  • 相关阅读:
    CentOS7中使用yum安装Nginx的方法
    Flask&&人工智能AI --4
    Flask&&人工智能AI --3
    Flask&&人工智能AI --2
    Flask&&人工智能AI --1
    Linux--8
    Linux--7
    django 请求生命周期
    Linux--6 redis订阅发布、持久化、集群cluster、nginx入门
    Node.js Addons翻译(C/C++扩展)
  • 原文地址:https://www.cnblogs.com/bm20131123/p/12881579.html
Copyright © 2011-2022 走看看