• js深拷贝和浅拷贝


    浅拷贝:
      在有指针的情况下,浅拷贝只是增加一个指针,指向已经存在的内存。

    深拷贝:

      增加一个指针并且申请一个新内存,使这个增加的指针指向新的内存。


      采用深拷贝,释放内存时就不会出现在浅拷贝时重复释放同一个内存的错误。


    实例:

    //被改变 - 引用类型是对象
    var arr=[1,2,3,4,5]
    var arr1=arr;
    console.log(arr)
    arr1[1]=6; //原arr已被改变
    console.log(arr) //原arr已被改变
    //没有被改变 - 使用一些方法完全复制
    //利用 arr.slice(0) 或 arr.concat() 完整创建一个新数组
    var arr=[1,2,3,4,5]
    var arr1=arr.slice(0);
    console.log(arr)
    arr1[1]=6; //原arr没有改变
    console.log(arr) //原arr没有改变
    //没有被改变- 数据类型是值还不是对象的时候
    //引用数据类型是直接是一个值的情况下没有浅拷贝和深拷贝之分
    //但是对象有
    //非对象的变量和内存直接放在同一内存中,没有指针一说
    var arr=1;
    var arr1=arr;
    arr1=10;
    console.log(arr); //1 没有被改变,因为引用数组类型是值
  • 相关阅读:
    vue_03
    vue03
    vue2
    vue02
    vue 01
    JavaScript要点 (一) 变量-作用域
    在iOS应用程序中打开设备设置界面及其中某指定的选项界面
    多线程操作Coredata(转)
    iOS_城市定位
    本地验证码
  • 原文地址:https://www.cnblogs.com/daysme/p/6288799.html
Copyright © 2020-2023  润新知