2013-09-03 7 views
8

Per quanto riguarda JavaScript, quando una serie di compensazione, ho trovato due metodi:In JavaScript, qual è la differenza tra myArray.length = 0 vs myArray = new Array()?

myArray.length = 0; 

vs

myArray = new Array() 

direi logicamente myArray.length = 0; mantiene il riferimento mentre myArray = newArray() crea un nuovo riferimento facendo riferimenti precedenti vuoto .

Tuttavia, ho trovato in passato indovinare come funziona JavaScript utilizzando la mia logica è stata regolarmente successo :)

Qual è la differenza (se presente) tra i due metodi?

risposta

3

Questa volta sei corretto. new Array() crea una nuova istanza di array e assegnarla a myArray. myArray.length = 0 svuota un vecchio array mentre myArray punta ancora al vecchio array.

Btw, è preferibile utilizzare la notazione [] rispetto a new Array().

Io personalmente provo sempre a utilizzare myArray.length = 0; poiché svuota effettivamente il contenuto dell'array.

0
myArray.length = 0; // Signifies empty array 
[1,2,3] // Length of this array is 3 

Quindi, in sostanza, un array con contenuto viene sovrascritto con un array vuoto.

È anche possibile utilizzare questo:

myarray = []; //More simple and elegant!!! 

Prestazioni saggio: [] è più veloce di new Array();

Come juno già detto: new Array() crea una nuova istanza della matrice (questa matrice sarà delle dimensioni menzionato negli argomenti) e lo assegna a myArray.

Problemi correlati