92 Kapitel 3
Werteparameter
JavaScript verwendet Werteparameter.
Es ist wichtig, dass Sie verstehen, wie die Argumente in JavaScript übergeben werden.
JavaScript verwendet hierfür das Konzept der Werteparameter (pass-by-value). Das bedeutet,
dass jedes Argument in die entsprechende Parametervariable kopiert wird. Hierzu ein einfaches
Beispiel:
Das heißt, die Argumente werden kopiert.
function addOne(x) {
x = x + 1;
}
var age = 7;
addOne(age);
function addOne(x) {
x = x + 1;
}
age
7
x
age
7
x
8
age
7
Wir deklarieren die Variable age und initialisieren sie mit dem Wert 7.
2
1
Nun definieren wir die Funktion addOne mit dem Parameter x, die 1 zum
Wert von x hinzuaddiert.
x
3
In diesem Schritt rufen wir addOne auf und übergeben ihr die Variable
age als Argument. Der Wert von age wird nun in den Parameter x
kopiert.
4
Jetzt wird der Wert von x um 1 hochgezählt (inkrementiert).
Vergessen Sie nicht, dass x eine Kopie ist. Es wird also nur x
inkrementiert, nicht aber age!
7
Dies ist eine
KOPIE von age.
age wird nicht
geändert, wenn x den
neuen Wert erhält.
x wurde
innerhalb
von addOne
inkrementiert.
Wir inkremen-
tieren x.
Sie sind hier 93
Einführung in Funktionen
Und was halten Sie von diesen
Werteparametern? Einerseits
scheint das ja ganz klar zu sein.
Andererseits habe ich das Gefühl,
irgendwas fehlt noch.
Gut, dass Sie darüber nachdenken. Sie müssen
verstehen, wie Werte in JavaScript an Funktionen übergeben wer-
den. Im Prinzip ist das ganz einfach: Wird ein Argument an eine
Funktion übergeben, wird sein Wert zunächst kopiert und dann
dem entsprechenden Parameter zugewiesen. Wenn Sie das nicht
verstehen, kann es passieren, dass Sie falsche Annahmen darüber
treffen, wie Funktionen, Argumente und Parameter zusammen-
arbeiten.
Die wichtigste Folge der Werteparameter liegt darin, dass Ände-
rungen am Parameter innerhalb der Funktion nur den Parameter
beeinflussen, nicht aber die ursprünglich an die Funktion überge-
bene Variable. Das ist eigentlich alles.
Aber natürlich gibt es für jede Regel eine Ausnahme, und wir
müssen dieses Thema im Zusammenhang mit Objekten noch
einmal ansprechen. Aber keine Sorge. Wenn Sie das Konzept der
Werteparameter verstanden haben, sollte die Diskussion für Sie
kein Problem sein.
Wegen der Werteparameter gilt folgende einfache Regel: Was auch
immer einem Parameter in der Funktion passiert, bleibt in der Funktion. Ein
bisschen wie Las Vegas.
Erinnern Sie sich an diese Kopfnuss? Denken
Sie jetzt anders darüber, nachdem Sie das
Konzept der Werteparameter kennengelernt
haben? Oder lagen Sie schon beim ersten Mal
richtig?
function doIt(param) {
param = 2;
}
var test = 1;
doIt(test);
console.log(test);
Kopf-
nuss
Neuauflage

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.