Wenn Arrays einer anderen Variablen zugewiesen werden, wird die Referenz im Gegensatz zu Werten übergeben. Dies wird bestätigt, wenn Sie zwei Arrays mit dem Operator ==
vergleichen und true
Bei den obigen Eingaben mutiert das Array b
, wenn ich es modifiziere, das Array a
, aber nicht c
.
Aber wenn ich das unten mache, mutiert es c
.
Warum passiert das? Dieses Verhalten tritt bei der Verwendung von Array-Methoden auf, die das Array mutieren.
.concat()
erstellt eine flache Kopie. Also nach der Zeile:
c
und a
verweisen auf verschiedene Arrays, aber c[0]
und b[0]
und a[0]
verweisen alle auf dasselbe Array.
Zitieren von MDN :
concat kopiert Objektreferenzen in das neue Array. Sowohl das ursprüngliche als auch das neue Array beziehen sich auf dasselbe Objekt. Das heißt, wenn ein referenziertes Objekt geändert wird, sind die Änderungen für das neue und das ursprüngliche Array sichtbar.
Tags und Links javascript