Secondo la documentazione MDN che chiama array.slice()
creerà una copia superficiale dell'array.Qual è la differenza tra una copia superficiale e una copia profonda con array JavaScript?
Vedere questo MDN link for slice().
Tuttavia, se si esegue un semplice test come tali nella console:
var test = [[1,2,3],7,8,9];
var shallow_copy = test.slice();
e ispezionare shallow_copy, posso vedere che l'intera matrice bidimensionale 2 sembra essere copiati.
Qual è la differenza tra una copia superficiale e una copia profonda? Se dovessi indovinare, l'avrei definito una copia profonda.
Significa 'test [0] === shallow_copy [0]', si riferiscono allo stesso oggetto matrice. – Bergi
Trovo che l'uso della parola "superficiale" e "profondo" sia totalmente confuso nella documentazione JavaScript poiché si dice già che gli oggetti non vengono mai copiati. Quando legge esplicitamente "superficiale" mi aspetterei che tutti gli elementi siano riferimenti alla stessa cosa (inclusi non oggetti come i numeri), ma si applica solo agli oggetti, che sono già dichiarati non devono mai essere copiati. – destoryer