繁体   English   中英

javascript设置对象相等

[英]javascript setting objects equal

这是我想要的方式,但我有点困惑为什么它的工作原理。

我有两个对象。 将temp对象设置为等于对象A并操纵临时对象。 对象A受到影响。

设置临时对象等于对象B(为什么现在不是所有三个对象都相等?)我操纵临时对象。 对象A不受影响。

 var tempObject = {}; var objectA = {A: 1}; var objectB = {A: 3}; $( document ).ready(function() { tempObject = objectA; add(tempObject); console.log(objectA); tempObject = objectB; add(tempObject); console.log(objectA); function add(arr){ arr.A += 1; } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

当您在JavaScript中处理对象时,它总是通过引用。 它类似于C / C ++中的指针。

tempObject设置为objectA ,基本上是说“tempObject现在指向与objectA相同的对象”。 因此,如果更改属性为1,则更改两者。

然后,当您将tempObject设置为objectB ,您说“tempObject现在指向与objectB相同的对象”。 您没有使用此更改任何对象,只是tempObject指向的对象。

tempObject设置为objectB ,它将不再是对objectA的引用,现在引用objectB 因此,当您对tempObject进行更改时, objectA不受影响,但objectB是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM