Vielleicht stelle ich mich auch nur unglücklich doof an, aber kann man bei der Defintion einer Funktion in JavaScript keine optionalen Parameter definieren?
function test(para1, para2, para3) { alert('parameter 1 =' + para1 + ' & parameter2 = ' + para2 + '& parameter3 = ' + para3); alert('ergebnis = ' + (para1 * para2 * para3)); }
Rufe ich diese Funktion nun mit 2 Parametern auf
<a onclick="test(1,2)" href="#">Test starten</a>
So erhalte ich
- parameter1 = 1
- parameter2 = 2
- parameter3 = undefined
und als Ergbnis der Multiplikation ein “NaN”
Neuer Versuch :
Diesesmal aber mit dem Funktionaufruf
<a onclick="test(1,2,)" href="#">Test starten</a>
Das führt zu einer Fehlermeldung dass ein Parameter nicht angegeben wurde. Also der nächste Versuch
<a onclick="test(1,2,'')" href="#">Test starten</a>
Jetzt bekomme ich folgende Werte raus
- parameter1 = 1
- parameter2 = 2
- parameter3 =
Und das Ergbenis der Multiplikation ergibt 0.
Also wie kann man das in JavaScript anders regeln? Das Überladen der Funktion, so wie ich es aus z.B. C++ kenne klappt auch nicht, da beim Neudefinieren der Funktion der Zugriff auf die ursprüngliche Definition nicht mehr möglich ist. Das Verwenden von Default Werten klappt nicht.
function test(para1, para2, para3=1) { alert('parameter 1 =' + para1 + ' & parameter2 = ' + para2 + '& parameter3 = ' + para3); alert('ergebnis = ' + (para1 * para2 * para3)); }
Wie geht das denn nun in JavaScript? Da muss es doch eine Möglichkeit geben oder?
#1 by Sven Gerlach on 29.10.2006 - 22:12
Hallo,
Das ganze sollte via “arguments” funktionieren.
Mehr zu diesem Thema kannst Du bei http://de.selfhtml.org/javascript/objekte/function.htm#arguments finden.
Hast Du also mehr als die Standardparameter, rufst Du die restlichen via arguments[ArgumentNummer] auf.
Grüße.
#2 by LANtastic on 30.10.2006 - 22:26
So funzt das Ganze … danke dir … da muss aber auch erst einmal drauf kommen …