簡體   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