24 lines
809 B
JavaScript
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();
|