深浅拷贝

代码案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <pre>
        注意:
            1、数据类型:(简单)基本数据类型、(复杂)引用数据类型
            2、深拷贝都是针对于较为复杂的object类型
    </pre>
    <script>
        /** 
            基本数据类型 --- 名值都储存在栈内存中;
            当 b = a 复制时; 栈内存会新开辟一个内存
            所以当你修改 a = 2 时 b 的值并不会发生改变  但这也算不上深拷贝 因为深拷贝都是针对于较为复杂的object类型
        */
        var x = 1;
        var y = x;
        y = 2;
        console.log(x)
        console.log(y)

        /**
            引用数据类型 --- 名存栈内存中 值存堆内存中 但是栈内存会提供一个引用地址指向堆内存中的值
            浅拷贝:由于 a 和 b 指向的都是同一个堆内存值 所以 a 的修改 影响到了 b  这就是所谓的浅拷贝
            深拷贝:所以要实现深拷贝 就是要在堆内存中新建一个 b 的堆内存
         */
        var k = [1,2,3,4];
        var j = k;
        j[4] = 5;
        console.log(k)
        console.log(j)
    </script>
</body>
</html>

 

posted @ 2020-12-29 11:09  剑仙6  阅读(77)  评论(0编辑  收藏  举报
欢迎访问个人网站www.qingchun.在线