07 – Funktionen 📦
Wiederverwendbarer, strukturierter und wartbarer Code
🎯 1. Einleitung & W3Schools
In diesem Kapitel hast du gelernt, wie Funktionen Code kapseln, wiederverwenden und testen – mit Parametern, Rückgabewerten und klarem Gültigkeitsbereich (Scope).
🧠 2. KI-Prompt-Training
Aufgabe: Formuliere einen Prompt, mit dem du KI um Hilfe bitten würdest, um zu erklären, warum Funktionen mit Rückgabewert besser sind als solche ohne – und wie der Gültigkeitsbereich (Scope) von Variablen in Funktionen funktioniert.
🔄 Aufgabe 1: Rückgabewert vs. Seiteneffekt – Was ist besser?
Gegeben sind zwei Funktionen, die eine Liste um ein Element erweitern:
// Variante A: Seiteneffekt
function fuegeHinzuA(liste, element) {
liste.push(element);
}
// Variante B: Rückgabewert
function fuegeHinzuB(liste, element) {
return [...liste, element];
}
Deine Aufgabe:
- Erkläre den Unterschied zwischen Seiteneffekt (Variante A) und reiner Funktion (Variante B).
- Wann ist welche Variante sinnvoll? Gib je ein Anwendungsbeispiel aus der Praxis.
- Teste beide Varianten mit:
Was ist der Inhalt vonconst original = ["Apfel"]; fuegeHinzuA(original, "Banane"); const neueListe = fuegeHinzuB(original, "Orange");originaldanach? Begründe! - Formuliere einen Prompt, der eine Funktion erstellt, die immun gegen unbeabsichtigte Änderungen des Originals ist.
🔒 Aufgabe 2: Scope und Closure – Warum funktioniert das?
Analysiere folgenden Code:
function zaehlerErzeugen() {
let zaehler = 0;
return function() {
zaehler++;
return zaehler;
};
}
const zaehler1 = zaehlerErzeugen();
console.log(zaehler1()); // → 1
console.log(zaehler1()); // → 2
Deine Aufgabe:
- Erkläre, warum die Variable
zaehlernicht verloren geht, obwohlzaehlerErzeugen()schon beendet ist. - Was passiert, wenn du einen zweiten Zähler erstellst? Teilen sich beide den gleichen
zaehler? - Warum ist das ein Beispiel für Closure?
- Formuliere einen Prompt, der eine Zähler-Fabrik mit Closure erstellt – und erklärt, warum jede Instanz ihren eigenen Zustand hat.
📊 Beurteilungskriterien – Übung 07: Funktionen
Deine Lösung wird anhand folgender Kriterien beurteilt – besonders im Fachgespräch. Markiere selbst ehrlich, wo du stehst:
| Kriterium | ✅ Erfüllt |
➖ Teilweise |
❌ Nicht erfüllt |
|---|---|---|---|
| Verständnis von Rückgabewerten vs. Seiteneffekten: Kannst du im Fachgespräch erklären, warum Funktionen mit Rückgabewert besser wartbar sind als solche mit Seiteneffekten? |
|||
| Umgang mit Scope und Closure: Verstehst du, warum eine innere Funktion auf Variablen der äußeren Funktion zugreifen kann – und warum jede „Zähler-Fabrik“ ihren eigenen Zustand hat? |
|||
| Qualität der Prompts: Sind deine Prompts präzise formuliert, thematisch korrekt und vermeiden sie, KI um „fertigen Code“ zu bitten? |
|||
| Eigene Reflexion: Kannst du im Fachgespräch erklären, warum du deine Lösung gewählt hast – oder gibst du nur KI-Output ab? |
⚠️ Hinweis: Im Fachgespräch wirst du gebeten, deine Lösung in eigenen Worten zu erklären. Wer nur KI-Code abgibt, kann die Fragen nicht beantworten.