So habe ich ein JavaScript-Objekt game
aufgerufen, das zwei Methoden hat:JAVASCRIPT: Verfahren auf ein anderes Verfahren zum gleichen Objekt zugeordnet - ändernden Wert der ersten Veränderungen zweiter
function game() {
this.TxtRevealed = new Array();
this.TxtRevealedBackup = new Array();
[...]
}
nun außerhalb eines Objekts i eins zwei zuweisen andere:
game.TxtRevealedBackup = game.TxtRevealed;
nach einer Weile ich ändern game.TxtRevealed
(i verwenden slice
Funktion einige Werte aus zu schneiden). Und jetzt passiert etwas, was ich nicht vorhabe: automatisch game.TxtRevealedBackup
ändert sich auch auf neuen Wert von game.TxtRevealed
.
Ich würde erwarten, dass game.TxtRevealedBackup
wäre das gleiche wie game.TxtRevealed
war im Moment der Zuweisung. Es funktioniert so, als ob game.TxtRevealedBackup
auf einen Wert zeigt, der durch game.TxtRevealed
dargestellt wird, nicht den Wert, den es im Moment der Zuweisung hatte.
Warum passiert es und wie kann ich arbeiten, was ich erwarte?
Kalreg.
Ja, Objekte funktionieren so. BTW, "Slice" ändert das Array nicht; wahrscheinlich meinst du spleißen. – Oriol
Die meisten objektorientierten Programmiersprachen funktionieren auf diese Weise. Objekte werden als Referenzen dargestellt. * "wie es funktioniert, würde ich erwarten" * Sie können das Objekt klonen. –
Was soll ich tun, um mein Ziel zu erreichen? – Kalreg