Worin besteht in JavaScript der Unterschied zwischen myArray.length = 0 vs myArray = new Array ()? [Duplikat]

8

Was JavaScript angeht, habe ich beim Löschen eines Arrays zwei Methoden gefunden:

%Vor%

vs

%Vor%

Ich würde logisch vermuten, dass myArray.length = 0; die Referenz behält, während myArray = newArray() eine neue Referenz erstellt, die vorherige Referenzen ungültig macht.

Allerdings habe ich in der Vergangenheit festgestellt, dass JavaScript funktioniert, indem ich meine eigene Logik nutze, was regelmäßig nicht erfolgreich war:)

Was ist der Unterschied (wenn überhaupt) zwischen den beiden Methoden?

    
Aaron 03.09.2013, 11:45
quelle

2 Antworten

3

Sie haben dieses Mal Recht. new Array() erstellt eine neue Instanz von array und weist sie myArray zu. myArray.length = 0 leert ein altes Array, während myArray immer noch auf das alte Array zeigt.

Übrigens ist es besser, [] notation als new Array() zu verwenden.

Ich persönlich versuche immer myArray.length = 0; zu verwenden, da es den Inhalt des Arrays tatsächlich leert.

    
Joon 03.09.2013, 11:47
quelle
0
%Vor%

Im Grunde wird ein Array mit Inhalt mit einem leeren Array überschrieben.

Sie können dies auch verwenden:

%Vor%

Leistungsmäßig: [] ist schneller als new Array();

Wie juno bereits gesagt hat: new Array() erstellt eine neue Instanz des Arrays (dieses Array hat die in Argumenten angegebene Größe) und weist es myArray zu.

    
Leonardo Da Codinchi 03.09.2013 11:49
quelle

Tags und Links