返回信息流var a={[1,3,6,8,2,4,7,11,12];}
var b=a;
b[1]=5;
console.log(a[1])
var a={
x:1,
y:2
}
var b=a;
b.x=5;
console.log(a.x)
求这两个的值为多少??
麻烦大神给解答解答原理~~
这是一条镜像帖。来源:北邮人论坛 / java-script / #746同步于 2016/10/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖
求问javascript的问题
qiuoffer
2016/10/26镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
var a={[1,3,6,8,2,4,7,11,12];} 这个写错了吧
------
js变量有基本类型和引用类型,基本数据类型(如Number,String这些)在执行a = b这类时候,a和b的内存位置是不同的,就是复制值传给另外一块新分配的内存而已
但是引用类型(如Array,Object这类),其实传的是一个指向堆内存的同一个指针,你这样执行b=a,之后这两个变量就是指向同一块堆内存,就是引用同一个对象,你只要改一个,因为指向相同,另外一个也会跟着变