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 + ' &amp; parameter2 = ' + para2 + '&amp; parameter3 = ' + para3);
alert('ergebnis = ' + (para1 * para2 * para3));
}

Wie geht das denn nun in JavaScript? Da muss es doch eine Möglichkeit geben oder?