美文网首页
深拷贝和浅拷贝

深拷贝和浅拷贝

作者: 喵喵_c938 | 来源:发表于2019-03-18 21:58 被阅读0次

    浅拷贝只拷贝地址索引,内存不变,如:
    a = {a:1};
    b=a;
    b.a=2;
    那么a.a =2

    深拷贝则是开了新的内存及索引,如:
    a = {a:1};
    b = JSON.parse(JSON.stringify({a:1}));
    b.a = 2;
    a.a=1;

    基础数据类型和引用数据类型:
    基础数据类型保存在栈内存,引用数据类型保存在堆内存。
    栈内存要求固定大小,但是引用数据类型大小不固定,所以保存在堆内存中,但是可以把它的地址写在栈内存中以供我们访问

    如果是基本数据类型,则按值访问,操作的就是变量保存的值;如果是引用类型的值,我们只是通过保存在变量中的引用类型的地址来操作实际对象

    1552917261(1).png

    对于基础数据类型来说:
    a=1;
    b=a;
    b=2;
    a=1;

    相关文章

      网友评论

          本文标题:深拷贝和浅拷贝

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