当我创建一个对象并将其推送到数组时,它是通过引用还是值存储?
我看到以下情况发生:
var abc = { a: 10, b: 20};
var def = [];
def.push(abc);
abc.a = 100;
def[0].a; // outputs 100!
// if I do this
abc = { a: 10000, b: 20000 };
def[0].a; // still 100, no change this time
来自控制台的图像:
如果我使用=
符号将对象分配给,则数组中abc
指向的引用也应该改变,不是吗?我们在上面通过价值还是通过引用来称呼什么?abc
def
我理解它就像是abc
指向一个值的引用。只要我们不使用=
符号,它就会一直指向那个。请指导。