Ich arbeitete an einem Ereignis Widget und seltsames Verhalten gefunden, es kann Noob Frage sein.Javascript Zuordnung Operator seltsames Verhalten
Im Folgenden finden Sie Codeblock I wurde auf
var event={0:{competition:{like:false}}}
console.log(event[0].competition.like); //returns false
var cmpt=event[0].competition;
cmpt.like=true;
console.log(event[0].competition.like) //returns true
arbeiten Können Sie mir helfen, zu verstehen, warum Wert von Attribute [wie] des Wettbewerbs innerhalb -Ereignisobjekts wird immer aktualisiert. und wie kann ich dies verhindern und nicht aktualisiert Ereignisobjekt?
Ich versuchte in google/so zu suchen, aber diese Fragen adressierten verschiedene Probleme.
Sie kopieren nur einen Verweis, nicht das Objekt. –
Es ist, weil in JavaScript Objekte durch Verweis übergeben werden, damit es funktioniert, wie Sie möchten, müssen Sie das Wettbewerbsobjekt klonen. – jcubic
Wenn es sich nicht um eine Zeichenfolge oder eine Zahl handelt, handelt es sich um eine Referenz (Zeiger). Um ein Objekt zu kopieren (statt auf es zu zeigen), wird 'Object.create (event [0] .competition)' – slebetman