Мелкая копия
Поверхностные копии дублируются как можно меньше. Неглубокая копия коллекции — это копия структуры коллекции, а не элементов. При неглубоком копировании две коллекции теперь имеют общие элементы.
Глубокая копия
Глубокие копии дублируют все. Глубокая копия коллекции – это две коллекции, в которых дублируются все элементы исходной коллекции.
Создайте объект a со свойством test со значением test1, а затем скопируйте b = a
и затем измените значение test в объекте. б. Давайте посмотрим пример:
Мелкая копия
const a = 5;
const b = a;
b.test = 'test2'; //Shallow copy
console.log(a); // test 2 console.log(b); // test 2
Глубокая копия
const a = { test: 'test1' }
//you can use spread or Object.assign() method for clone an object
const b = {...a}; // or const b = Object.assign({},a);
b.test = 'test2'; // Deep copy
console.log(a); // test 1 console.log(b); // test 2
Делаем глубокие копии, не думая, что можем использовать JSON
const a = { test: 'test1' } const b = JSON.parse(JSON.stringify(a)); b.test = 'test2';
console.log(a); // test 1 console.log(b); // test 2
С массивами
Копирование массивов так же распространено, как и копирование объектов. Вы можете использовать несколько способов глубокого копирования: оператор расширения, функции массива и вложенный массив.
Давайте рассмотрим пример ниже:
const a = [1,2,3] let b = [...a] // Spread Operator let b = a.map(item => item) // Array Functions let b = a.slice(0) // Array Functions
let b = JSON.parse(JSON.stringify(a)) // Nested Array
Спасибо, что прочитали. Поделитесь своим опытом, вопросами и отзывами ниже!