对象引用在JavaScript中如何工作?

Var*_*n r 3 javascript

我是JavaScript的新手,我认为对象是通过引用传递的。

我期望的输出是:

{ one: 1 } { one: 1 }
{ two: 2 } { two: 2 }
Run Code Online (Sandbox Code Playgroud)

获得的输出:

{ one: 1 } { one: 1 }
{ two: 2 } { one: 1 }
Run Code Online (Sandbox Code Playgroud)

什么时候b引用地址a,为什么b{ one: 1 }

{ one: 1 } { one: 1 }
{ two: 2 } { two: 2 }
Run Code Online (Sandbox Code Playgroud)

Cod*_*iac 5

当您这样做时b = a,因此现在b拥有与相同的引用a

但是当您将新值分配给 a

a = { one : 2 }
Run Code Online (Sandbox Code Playgroud)

它为值({ one : 2 })创建了一个新的内存引用,并用a变量对其进行了标记,因此您可以使用引用该内存引用a并获取该值。但b仍保留具有参考a价值的初始参考{one : 1}


归档时间:

查看次数:

66 次

最近记录:

6 年,3 月 前