Według dokumentacji MDN wywołanie array.slice()
spowoduje utworzenie płytkiej kopii tablicy.Jaka jest różnica między płytką kopią i głęboką kopią z tablicami JavaScript?
Zobacz to MDN link for slice().
Jednakże, jeśli mogę uruchomić prosty test jako taki w konsoli:
var test = [[1,2,3],7,8,9];
var shallow_copy = test.slice();
i wglądu shallow_copy, widzę, że cała 2 wymiarowa tablica wydaje się być kopiowane.
Jaka jest różnica między płytką kopią a głęboką kopią? Gdybym miał zgadywać, nazwałbym to głęboką kopią.
Oznacza to, że 'test [0] === shallow_copy [0]', odnoszą się do tego samego obiektu tablicy. – Bergi
Uważam, że użycie słowa "płytkie" i "głębokie" jest całkowicie mylące w dokumentacji JavaScript, ponieważ zostało już powiedziane, że obiekty nigdy nie są kopiowane. Kiedy jednoznacznie brzmi "płytko", oczekiwałbym, że wszystkie elementy będą odniesieniami do tej samej rzeczy (w tym do obiektów, takich jak liczby), ale dotyczy to tylko obiektów, o których już wcześniej nie pisano. – destoryer