24 lines
809 B
JavaScript

import cloneDeep from "./node_modules/lodash-es/cloneDeep.js";
const state = {
cart: [
{ product: "bread", quantity: 3 },
{ product: "ananas", quantity: 2 },
],
user: {
loggedIn: true,
},
};
const stateClone = Object.assign({}, state);
console.log(stateClone);
stateClone.user.loggedIn = false;
console.log(state); // beim Object-Klonen, ändert sich auch die Eigenschaften aus dem originalen Objekt
const stateDeepClone = cloneDeep(state); // damit wird ein richtiges Klon des Objektes erstellt, das nicht von dem originalen Object abhängig ist.
// Mit Eigenschaften-Änderung werden sich die originalen Eigenschaften aus dem abgeleiteten Objekt nicht ändern. Es geht um zwei verschiedenen Objekte
stateDeepClone.user.loggedIn = true; //
console.log(stateDeepClone);
console.log();