复制变量值:
基本类型值:
var num1=5; var num2=num1;
复制前的变量对象
num1 | 5 number类型 |
复制后的变量对象
num2 | 5 number类型 |
num1 | 5 number类型 |
num2只是num1的一个副本,2者独立
引用类型值:
var obj1=new Object(); var obj2=obj1; obj1.name="mike"; alert(obj2.name);//mike
引用类型的复制
引用类型复制过程中会将存储在变量对象中的值复制到新变量分配的空间中,不同的是,这个值实际上是一个指针,这个指针指向堆内存。
复制结束后,2者指向同一个对象。
基本类型值在内存中占据固定大小的空间,因此保存在栈内存中
引用类型保存在堆内存中 ,因为它的值大小不固定因此不能保存在栈内存中,又因为它的内存地址大小固定,所以在栈内存中保存的访问地 址,堆内存保存着对象。