molily: Funktion mit falschen Parametern

Beitrag lesen

Hallo,

kann mir jemand sagen, in welcher Spec steht, was ein Browser machen soll, wenn eine Funktion mit falschen Parametern aufgerufen wird. Das kann sowohl der Typ als auch die Anzahl sein.

ECMAScript

Der Browser soll gar nichts machen. JavaScript ist dynamisch und schwach getypt, Parameter haben keinen festgelegten Typ. Und eine Funktion kann immer mehr oder weniger Parameter entgegennehmen, als in der formalen Parameterliste aufgeführt sind. Deklarierte Parameter, für die kein Wert übergeben wird, bekommen einfach den Wert undefined.

Beispiele:

eval(5) => Falscher Parametertyp

eval("functionA()", "functionB()") => falsche Anzahl

  
Die Verwendung von eval verstehe ich hier nicht.  
  
Wenn du den Typ von Parametern oder deren Anzahl erzwingen willst, so musst du selbst entsprechende Prüfungen vornehmen und kannst selbst Fehlermeldungen werfen, sofern falsche Typen übergeben werden.  
  
Die Anzahl der Parameter lässt sich mit <http://de.selfhtml.org/javascript/objekte/function.htm#arguments@title=arguments.length> prüfen.  
  
Typabfragen sind in JavaScript möglich (siehe [Objektabfragen](http://aktuell.de.selfhtml.org/artikel/javascript/objektabfragen/)), aber in der Regel interessiert einen in JavaScript nicht der Typ einer Variable. Duck Typing ist die Regel, d.h. man verwendet einen Wert, sofern er gewisse Fähigkeiten hat und brauchbar ist. Die meisten Werte lassen sich umwandeln, viele Operatoren wandeln die Operanden automatisch in die benötigten Typen um.  
  
Mathias