Immutability des Objektes mit Object.freeze(<Objekt>) Verwendung hinzugefügt
This commit is contained in:
parent
a08d1c4744
commit
dba69ed807
@ -1,3 +1,5 @@
|
||||
"strict mode";
|
||||
|
||||
const budget = [
|
||||
{ value: 250, description: "Sold old TV 📺", user: "david" },
|
||||
{ value: -45, description: "Groceries 🥑", user: "david" },
|
||||
@ -9,10 +11,17 @@ const budget = [
|
||||
{ value: -1800, description: "New Laptop 💻", user: "david" },
|
||||
];
|
||||
|
||||
const spendingLimits = {
|
||||
const spendingLimits = Object.freeze({
|
||||
// damit macht man Objekt unveränderlich (IMMUTABLE) (aber Objekt wird unveränderlich nur im 1 Level des Objektes.
|
||||
// Objekte, die unter ein Objektes existieren, können geändert werden(damit wird nicht deepFreeze gemacht))
|
||||
// Mit der Object freeze Methode Verwendung, kann man nach der Definierung des Objektes nicht mehr Eigenschaften hinzufügen
|
||||
david: 1500,
|
||||
joanne: 100,
|
||||
};
|
||||
});
|
||||
|
||||
spendingLimits.eva = 200; // das wird wegen des Object-freeze Methode nicht funktionieren
|
||||
console.log(spendingLimits); // Das Objekt spendingLimits bleibt ungeändert
|
||||
|
||||
const getLimit = user => spendingLimits?.[user] ?? 0;
|
||||
const addExpense = function (value, description, user = "david") {
|
||||
// if (!user) user = "david"; // statt einen solchen urprünglichen Wert in der if Anweisung zu erstellen,
|
||||
@ -44,7 +53,7 @@ const checkExpenses = function () {
|
||||
// der Name einer Methode check, zu wenig beschreibt, was sie eigentlich checkiert,
|
||||
// in unserem Fall wäre besser, checkExpenses, damit eindeutlich ist, was eigentlich diese Methode checkiert
|
||||
|
||||
// durch was das Loop geht. Besser als nur "el" für ein Element in dem Feld zu definieren, entry
|
||||
// Besser als nur "el" für ein Element in dem Feld zu definieren, entry definiieren, damit man weisst welche Role spielt ein Element, wenn for Loop durch das Feld geht
|
||||
for (const entry of budget)
|
||||
if (entry.value < -getLimit(entry.user)) entry.flag = "limit";
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user