Funktionen als Objekte


Mehrfache Definition einer Funktion

Definition einer Funktion mit

   var f = new Function("x", "return x*x");

Aufruf der Funktion und Ausgabe des Rückgabewertes

   document.writeln(f(5));

Umdefinition und erneute Ausgabe

   var f = new Function("x", "return x*x*x");
   document.writeln(f(5));


Definition einer Funktion durch Benutzereingabe

Nun können Sie die Funktion selbst definieren. Geben Sie dazu in folgendem Feld den Funktionsrumpf ein. Als Parameter steht - wie gezeigt - die Variable x zur Verfügung.

Rumpf:
Wert für x:
Ausgabe:

Umdefinition einer toString-Methode

Normalerweise liefert der Aufruf self.toString() folgende Ausgabe:

Nun wird diese Methode durch ein Funktionsobjekt ersetzt:
fktrumpf =  "if (this.name)\n {var text='Dies ist ein Fenster namens '+this.name}\n"
fktrumpf += "else\n {var text='Dies ist ein namenloses Fenster'};\n"
fktrumpf += "return text;"
var win_toString = new Function(fktrumpf);
self.toString = win_toString;
document.writeln(this.toString());
Die Ausgabe lautet:


Auch die Ausgabe der neuen Methode ist möglich. Da toString nun ein Objekt ist, das seinerseits wieder die Methode toString() besitzt, ist der Ausdruck self.toString.toString() definiert und liefert:


Das arguments-Objekt