美文网首页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);

相关文章

  • Java 浅拷贝和深拷贝

    java中传递为值传递,对于引用类型,改变值后,原对象及引用对象值将都改变,最近刚好看java中浅拷贝和深拷贝问题...

  • 值拷贝和对象引用

    栈数据结构:先进后出,后进先出 堆数据结构:数据没有固定顺序,在堆操作在堆操作数据可以任何顺序操作 实例: 1.基...

  • java 深拷贝

    普通拷贝只拷贝该对象的字段值,该对象里引用的其他对象不进行拷贝,保留原来的引用。所以需要深拷贝。

  • 15.深浅拷贝

    浅拷贝:就是当被拷贝的对象的某个属性值为引用类型时,拷贝的对象会将被拷贝的对象的这个属性的引用的地址拷贝过来,这样...

  • 深浅拷贝

    1 定义 深拷贝:拷贝一个对象时,不仅把对象的引用进行复制,还把该对象引用的值也一起拷贝。这样得到的深拷贝后的拷贝...

  • 深浅拷贝你知道多少?(针对引用类型Object)

    *变量引用值, *地址存储值。 *对象的拷贝:将一个对象赋值给另外一个对象,我们称之为对象的拷贝 *浅拷贝:(只需...

  • 对象拷贝

    浅拷贝 什么是浅拷贝 浅拷贝会将原对象中的基本类型的变量的值和引用类型变量的值复制到新的对象中。浅复制得到的新对象...

  • Java 浅拷贝与深拷贝

    浅拷贝 浅拷贝的对象, 对于基本数据类型, 拷贝值, 而引用变量和包装类型只拷贝内存地址. 改变其中一个引用变量内...

  • Day12-Java

    值传递和引用传递 值传递是值的拷贝, 引用传递是引用的拷贝 String 类型是引用类型, new String ...

  • JS面试复习笔记

    JavaScript复习 变量类型值类型typeof :值[开新空间]/引用[引用堆空间]/函数引用类型对象深拷贝...

网友评论

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

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