2017-10-31 2 views
0
var objectA = {x: 10, y: 10}; 
var objectB = objectA; 

    objectB.x = 100; 
    objectB.y = 100; 
    console.log(objectA) => {x: 100, y: 100} 

    but: 
    objectB = null; 
    console.log(objbectA) => {x: 10, y: 10} // Not null 

Wie kann ich objectA = null durch objectB setzen?Wie kann ich einen neuen Wert für Präferenzobjekt Javascript setzen?

+0

Sie können nicht. Objekte sind durch Referenzen verknüpft. Änderungen in 1 wirken sich also auf andere aus. Aber wenn Sie "objectB = null" verwenden, ersetzen Sie diese Referenz. Daher ist die Verbindung unterbrochen. – Rajesh

+0

Was Sie fragen, ist einfach unmöglich. –

+1

Nur als Referenz (lol) https://en.wikipedia.org/wiki/Reference_(computer_science) – Marie

Antwort

0

Wenn Sie var objectB = objectA verwenden, kopieren Sie nur die Referenz und nicht den tatsächlichen Wert. Wenn Sie also objectB auf null setzen, wird es auf null gesetzt, der Verweis in ObjectA bleibt jedoch erhalten.

0

Sie können nicht. Selbst wenn Sie objectA auf null setzen, ändern Sie nicht das Objekt selbst, sondern nur die Referenz - es zeigt auf ein anderes Objekt, das zufällig null ist. Vielleicht versuchen Sie eine Art von "Nullobjekt" oder etwas, das Null zurückgibt?

Verwandte Themen