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 = [
|
const budget = [
|
||||||
{ value: 250, description: "Sold old TV 📺", user: "david" },
|
{ value: 250, description: "Sold old TV 📺", user: "david" },
|
||||||
{ value: -45, description: "Groceries 🥑", user: "david" },
|
{ value: -45, description: "Groceries 🥑", user: "david" },
|
||||||
@ -9,10 +11,17 @@ const budget = [
|
|||||||
{ value: -1800, description: "New Laptop 💻", user: "david" },
|
{ 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,
|
david: 1500,
|
||||||
joanne: 100,
|
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 getLimit = user => spendingLimits?.[user] ?? 0;
|
||||||
const addExpense = function (value, description, user = "david") {
|
const addExpense = function (value, description, user = "david") {
|
||||||
// if (!user) user = "david"; // statt einen solchen urprünglichen Wert in der if Anweisung zu erstellen,
|
// 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,
|
// 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
|
// 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)
|
for (const entry of budget)
|
||||||
if (entry.value < -getLimit(entry.user)) entry.flag = "limit";
|
if (entry.value < -getLimit(entry.user)) entry.flag = "limit";
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user