Array.prototype.fill() Verweis statt Erstellen einer neuen Instanz
Beim Versuch, ein Array mit Array.prototype.fill( zu initialisieren ) kann das Verhalten unerwartet sein, wenn der Füllwert ein Objekt ist. In diesem Fall werden die Verweise auf dasselbe Objekt in jedem Element des Arrays gespeichert, was zu einer unbeabsichtigten gemeinsamen Nutzung von Eigenschaften und Verhalten führt.
Um dies zu beheben, wird empfohlen, alternative Methoden wie map() zu verwenden Erstellen Sie für jedes Element im Array neue Instanzen von Objekten. Dies kann erreicht werden, indem das Array zunächst mit einem beliebigen Wert gefüllt wird und dann jedes Element einem neuen Objekt zugeordnet wird:
var arr = new Array(2).fill().map(u => ({}));
Alternativ können Sie Object() als Mapper verwenden, um für jedes Element ein neues Objekt zu erstellen Array-Element:
var arr = new Array(2).fill().map(Object);
Durch den Einsatz dieser Techniken können Sie sicherstellen, dass jedes Element im gefüllten Array ein unabhängiges Objekt ist, wodurch potenzielle Probleme im Zusammenhang mit gemeinsamen Referenzen vermieden werden.
Das obige ist der detaillierte Inhalt vonWarum erstellt Array.prototype.fill() gemeinsame Objektreferenzen und wie kann ich dies vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!