Parameter und Argumente
Unsere bisherigen Funktionen tun bei jedem Aufruf genau dasselbe. Um aber die Fläche eines beliebigen Rechtecks zu berechnen, muss die Funktion seine Breite und Höhe kennen. Solche Werte bekommen Funktionen über Parameter:
function stelleVor(name) {
console.log(`Mein Name ist ${name}.`);
}
stelleVor("Anna");
stelleVor("Tom");Das gibt aus:
Mein Name ist Anna.
Mein Name ist Tom.In der Definition ist name in den Klammern ein Parameter: eine Variable, die die Funktion in ihrem Rumpf benutzen kann. Du erstellst sie nicht mit let; die Klammern in der Definition erstellen sie. Im Aufruf ist der Wert in den Klammern, "Anna", ein Argument. Wenn du die Funktion aufrufst, wird das Argument im Parameter gespeichert, und dann läuft der Rumpf. Beim ersten Aufruf ist name gleich "Anna", beim zweiten gleich "Tom".
Diese zwei Wörter verwechselt man leicht, merke dir also: Ein Parameter ist der Name in der Definition, ein Argument ist der Wert im Aufruf.
Eine Funktion kann mehrere Parameter haben, getrennt durch Kommas. Die Argumente landen dann der Reihe nach in den Parametern: das erste Argument im ersten Parameter, das zweite im zweiten und so weiter:
function stelleVor(name, alter) {
console.log(`Mein Name ist ${name} und ich bin ${alter} Jahre alt.`);
}
stelleVor("Anna", 21);
stelleVor(21, "Anna");Das gibt aus:
Mein Name ist Anna und ich bin 21 Jahre alt.
Mein Name ist 21 und ich bin Anna Jahre alt.Im zweiten Aufruf sind die Argumente vertauscht, also landete 21 in name und "Anna" in alter. JavaScript kümmert sich nicht darum, was die Werte bedeuten, sondern nur darum, in welcher Reihenfolge sie stehen.
Jetzt können wir das Problem vom Anfang der Lektion lösen: eine Funktion, die die Fläche eines beliebigen Rechtecks ausgibt.
So schreibst du es:
Anweisungen
- 1
Erstelle eine Funktion
gibFlaecheAusmit zwei Parametern,breiteundhoehe. Gib in ihrem Rumpfbreite * hoeheaus. - 2
Rufe sie unterhalb der Funktion mit den Argumenten
5und6auf. Das Programm gibt30aus. - 3
Rufe
gibFlaecheAusnoch zweimal auf, für die beiden anderen Rechtecke vom Anfang der Lektion: mit den Argumenten10und5und dann1und5. Das Programm gibt dann30,50und5aus, genau wie der lange Code am Anfang, aber jetzt braucht jedes Rechteck nur eine einzige Zeile.