美文网首页iOS面试点
值拷贝和对象引用

值拷贝和对象引用

作者: 云淡风轻_301b | 来源:发表于2017-10-19 08:48 被阅读27次

    栈数据结构:先进后出,后进先出

    75efbc696df23848b9838d72ea37677a.png

    堆数据结构:数据没有固定顺序,在堆操作在堆操作数据可以任何顺序操作


    1.png

    实例:


    p3.png
    var num =10;
    var bol =true;
    var str ="abc”;
    var obj = new Object();
    var arr = ['a','b','c'];
    var person = new Person(100,"jxl",22);
    

    1.基本数据类型:
    Number,boolean,string,Undefined, Null,放在栈内存中
    简单数据段 数据大小确定 内存空间自动分配

    2.对象:
    object ,arr构造函数对象
    对象的名称存储在栈,对象的内容属性都在堆区

    值拷贝:

    var a = 10;
    var b = a;
    console.log(a = b);
    //拷贝的是a的值,b是重新开辟的空间
    

    对象引用:

    var a =[1,2,3,4,5];
    var b =a;
    //此时b=[1,2,3,4,5];是在堆中取得a的地址,
    b和a共用一个地址,a,b有任何一个数值改变,都会变
    

    例:函数传参---对象引用

     var a = [1,2,3];
     function test(num){
        //相当于num =a;把对象当做参数传递到函数内部,也是对象引用
        //1.如果对参数进行操作,对象也会发生变化
        // num[0]=4;
        // num[1]=5;
        // num[2]=6;
        //2.如果对参数重新赋值,对象不会跟着改变
        // num =[4,5];
    }
    test(a);
    console.log(a);

    相关文章

      网友评论

        本文标题:值拷贝和对象引用

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