Ergänzungen zu Argumenten in JavaScript [] (Ergänzungen zu Argumenten in JavaScript), Lektion, Seite 723854
https://www.purl.org/stefan_ram/pub/ergaenzungen_argumente_javascript (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
JavaScript-Kurs

Ergänzungen zu Argumenten in JavaScript 

Aussprache eines Aufrufausdrucks

Die runde Klammer auf »(« wird im Deutschen (in der Mathematik) bei Verwendung der Funktionsschreibweise meist als „von“ gesprochen. So ist »this.Math.abs( -3 )« „abs von  Minus Drei“ oder „Der Betrag von  Minus Drei“ (Man kann den langen Namen »this.Math.abs« beim Aussprechen ruhig mit „abs“ oder etwas Ähnlichen abkürzen, solange dadurch keine Mißverständnisse zu befürchten sind). Den Ausdruck »cos( 0 )« kann man beispielsweise als „Kosinus von Null“ aussprechen. Ausführlicher nennt man »cos( 0 )« „der Aufruf der Funktion »cos« mit dem Argument(wert) »0«“.

Der Betrag einer Zahl ist der Abstand der Zahl von 0. Der Betrag von ‹ −3 › ist daher gleich ‹ 3 ›.

Man kann sich den Aufruf »this.Math.abs( -3 )« auch als Frage veranschaulichen: „Was ist der Betrag von »-3«?“ – er antwortet dann mit »3«.

Semantik eines Argumentwertes

Die Bedeutung  eines bestimmten Argumentwertes für die Auswertung des Aufrufausdrucks wird durch die aufgerufene Funktion beziehungsweise ihre Dokumentation jeweils individuell festgelegt.

Erklärung zur Bedeutung von Ausdrücken *

Wir hatten Ausdrücke bereits als Quelltexte kennengelernt, welche man in die Konsole  eingeben kann, wo sie dann ausgewertet werden. Danach konnten wir Ausdrücke auch als das charakterisieren, was man als Operand  eines Operators schreiben kann. Nun können wir Ausdrücke auch noch dadurch charakterisieren, daß sie als Argumente  in Aufrufausdrücken verwendet werden können. Wenn man Argumente aber auch als eine Art von Operanden ansieht, dann ist es nicht nötig, sie ausdrücklich zu erwähnen, und wir können dann weiterhin einfach sagen: „Ein Ausdruck  ist etwas, das in den Ausdruckrahmen eingesetzt werden oder als Operand verwendet werden kann.“

Deterministische Funktionen *

Eine Funktion, welche man mit einem Argument aufrufen kann, und welche einen Wert als Ergebnis liefert, der durch diese Funktion und einen eventuellen Argumentwert bestimmt ist, nennt man auch eine deterministische Funktion.

»this.Math.abs« ist ein Beispiel für eine deterministische Funktion, weil sich bei gleichem Aufruf auch der gleicher Wert ergibt, während die Funktionen »this.Math.random« nicht  deterministisch ist, da sie auch bei gleicher Schreibweise des Aufrufs unterschiedliche Werte liefern kann.

Deterministische Funktionen, die mit einem Argument aufgerufen werden, ähneln den Funktionen (Abbildungen) der Mathematik, während nicht-deterministische Funktion in der Schulmathematik keine Entsprechung haben.

Übergabe des Argumentwerts **

Man kann sich den Sinn  eines Arguments auch so erklären: Die Funktion »this.Math.abs« benötigt noch Informationen, um ihre Arbeit tun zu können, und diese Informationen werden durch den Wert des Arguments geliefert. Das Argument enthält die Information, welche die Funktion verarbeiten soll.

Da beim Aufruf einer Funktion der Wert des Argumentausdrucks zur Laufzeit zusammen mit der Kontrolle (über den Computer) an die aufgerufene Funktion übergeben wird, spricht man auch von der Übergabe  des Argumentwertes oder sagt, der Argumentwert werde an die aufgerufene Funktion übergeben.

Konsole und »this.Math.abs«

Konsole

|
|
| Übergabe der Kontrolle
| und des Wertes -3
'------------------.
|
V
.---------------.
| this.Math.abs |
'---------------'
|
|
.<-----------------'
| Rueckgabe der Kontrolle
| und des Wertes 3
|
v

Konsole

Das folgende Diagramm stellt dieselbe Situation mit etwas allgemeineren Begriffen vor.

Übergabe und Rückgabe der Kontrolle zur Laufzeit

Konsole

|
|
| Übergabe der Kontrolle
| und des Argumentwertes
'------------------.
|
V
.---------------.
| Unterprogramm |
'---------------'
|
|
.<-----------------'
| Rueckgabe der Kontrolle
| und des Ergebniswertes
|
v

Konsole

Ein- und Ausgabe bei Funktionen **

Man kann eine Funktion wie »this.Math.abs« auch mit einer Backmaschine vergleichen, bei der man – vereinfacht gesagt – Mehl hinein gibt und Brot heraus bekommt: bei »this.Math.abs« gibt man eine Zahl hinein und bekommt die Zahl ohne negatives Vorzeichen heraus.

Insofern kann man eine Funktion wie ein Maschine sehen, in die eine Information eingegeben werden kann, und die dann eine andere Information dazu ausgibt. Gibt man in »this.Math.abs« beispielsweise die Zahl »-3«, so kommt als Ausgabe die Zahl »3« heraus.

»this.Math.abs« als Maschine mit einer Eingabe und einer Ausgabe

"Eingabe" "Ausgabe" (nur vergleichsweise Bezeichnungen)

.---------------.
- 3 ---> | this.Math.abs |---> 3
'---------------'

Übergabe Rückgabe (korrekte Bezeichnungen)

Freilich spricht man aber in diesem Fall normalerweise nicht  von „eingeben“ sondern von „übergeben“ und auch nicht von „ausgeben“, sondern von „zurückgeben“.

Auch wenn in diesem Abschnitt zu Lehrzwecken einmal von der „Eingabe“ und der „Ausgabe“ bei einer Funktion gesprochen wurde, sollte man dafür normalerweise von der „Übergabe eines Argumentwertes an eine Funktion“ und der „Rückgabe eines Ergebniswertes durch eine Funktion“ sprechen.

Operanden und Argumente ***

Man kann den Funktionsausdruck und Argumentausdruck auch als eine Operanden  des Aufrufs ansehen und die Klammern als binären Aufrufoperator. Diese Sichtweise ist aber unüblich. Trotzdem gilt alles, was wir hier über Operanden  sagen im Regelfall auch für Funktionsausdrücke  und Argumente  in einem Aufruf. Daher ist es im allgemeinen eine Vereinfachung, wenn man ein Argument als eine Art von Operand ansieht, damit man nicht immer von „Operanden und Argumenten “ sprechen muß.

Ein Aufrufausdruck zerlegt in Operator und Operand

zweiter Operand (gleich "-3")
|
|
erster Operand |
| |
v v

this.Math.abs( -3 )
^ ^
'---'
|
Operator

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723854 stefan_ram:723854 Ergänzungen zu Argumenten in JavaScript Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723854, slrprddef723854, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/ergaenzungen_argumente_javascript