Diese Seiten sind Teil von Bachsau’s Archiv.
Die hier beschriebenen Praktiken entsprechen nicht mehr dem Stand der Technik!
Bitte nutzen Sie für aktuelle Projekte das fortlaufend aktualisierte SELFHTML-Wiki.

SELFHTML

Function

Informationsseite

nach unten Allgemeines zur Verwendung

Eigenschaften:

nach unten arguments (Argumentnamen-Array)
nach unten arity (Anzahl Argumente)
nach unten caller (Namen der aufrufenden Funktion)

 nach unten 

Function: Allgemeines zur Verwendung

Über das Objekt Function haben Sie Zugriff auf Eigenschaften einer JavaScript-Seite Funktion. JavaScript-Funktionen werden dadurch also selbst Gegenstand von JavaScript-Anweisungen. Sinnvoll ist das Arbeiten mit dem Function-Objekt beispielsweise im Zusammenhang mit einer variablen Anzahl von Parametern in einer Funktion.

Ein neues Function-Objekt können Sie extra erzeugen.

Beispiel:

var Farbe = new Function("NeueFarbe", "document.bgColor = NeueFarbe;");

Beispielentsprechung in normaler Schreibweise:

function Farbe (NeueFarbe) {
  document.bgColor = NeueFarbe;
}

Beispielaufruf für beide Fälle:

<a href="javascript:Farbe('#FFCC99')">Neue Hintergrundfarbe</a>

Erläuterung:

Betrachten Sie in dem Beispiel zunächst den mittleren Teil ("Beispielentsprechung in normaler Schreibweise"). Das ist die normale Definition einer Funktion. Im Teil darüber wird die gleiche Funktion definiert, jedoch in Form eines Funktionsobjekts. Das Funktionsobjekt wird mit new Function(...) erzeugt. Der Rückgabewert wird in einer Variablen gespeichert, im Beispiel in der Variablen Farbe. Als Parameter erwartet die Function-Funktion eine beliebige Anzahl Parameter, die bis zum vorletzten als Parameter interpretiert werden, die die Funktion erwarten soll. Im Beispiel gibt es einen solchen Parameter, nämlich den Parameter NeueFarbe. Der letzte Parameter, der der Function-Funktion übergeben wird, ist eine Zeichenkette, die den gesamten Funktionsinhalt darstellt, also die JavaScript-Anweisungen innerhalb der Funktion.

Eine Variable, in der eine Funktion gespeichert ist, wie im Beispiel die Variable Farbe, können Sie genauso aufrufen wie eine Funktion. Der dritte Teil ("Beispielaufruf für beide Fälle") gilt tatsächlich für beide Fälle, denn im einen Fall wird die Variable Farbe aufgerufen, in der eine ganze Funktion gespeichert ist, und im anderen Fall wird eine Funktion namens Farbe() aufgerufen.

Sie müssen jedoch kein neues Funktionsobjekt erzeugen, sondern können auch direkt Eigenschaften des Funktionsobjekts auf eine Funktion anwenden.

Beispiel für direktes Verwenden von Funktionseigenschaften:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
</head><body>
<script type="text/javascript">
function HTMLListe (Typ) {
  document.write("<" + Typ + ">");
  for (var i = 1; i < HTMLListe.arguments.length; i++)
    document.write("<li>" + HTMLListe.arguments[i] + "</li>");
  document.write("</" + Typ + ">");
}

HTMLListe("ol", "eins", "zwei", "drei");
</script>
</body></html>

Das Beispiel schreibt dynamisch eine HTML-Liste, entweder als Aufzählungsliste oder als nummerierte Liste, in die Datei. Dies geschieht in einer Funktion namens HTMLListe(). Unterhalb der Funktion steht der Aufruf der Funktion. Dabei werden vier Parameter übergeben. Die Funktion HTMLListe() erwartet jedoch nur einen Parameter, nämlich den Parameter Typ. Dabei sollte man ul oder ol übergeben. Abhängig davon erzeugt die Funktion eine Aufzählungsliste oder eine nummerierte Liste.

Innerhalb der Funktion wird jedoch mit HTMLListe.arguments.length die tatsächliche Anzahl der übergebenen Elemente abgefragt. Die Funktion nimmt an, dass alle Parameter ab dem zweiten Elemente der gewünschten Liste sind. Die Funktion schreibt mit document.write()-Befehlen die entsprechenden Listenpunkte und setzt dabei reihenweise die übergebenen Parameter ein, da diese Aktion innerhalb einer for-Schleife erfolgt.

nach obennach unten

JavaScript 1.1Netscape 3.0MS IE 4.0Opera 5.12Mozilla Firefox 1Konqueror 3.1Safari 1.0Lesen arguments

Speichert die Argumente, die einer Funktion übergeben wurden, in einem Array, also einer Kette von Elementen. Jedes Element stellt ein Argument dar. Die Eigenschaft ist nur innerhalb der Funktion verfügbar, auf die sie sich bezieht.

Beispiel:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
</head><body>
<script type="text/javascript">
function Test (Name, Vorname) {
  document.write("Funktion bekam " + Test.arguments.length + " Argumente");
  for (var i = 0; i < Test.arguments.length; ++i)
    document.write("<BR>" + Test.arguments[i]);
}

Test("Muenz", "Stefan");
</script>
</body></html>

Erläuterung:

Das Beispiel definiert eine Funktion Test(), die zwei Parameter übergeben bekommt. Die Funktion schreibt dynamisch in die HTML-Datei, wie viele Parameter sie erwartet, und danach in einer for-Schleife, welche Werte übergeben wurden.

Mit Funktionsname.arguments.length ermitteln Sie die Anzahl der tatsächlich übergebenen Parameter (nicht die Anzahl der erwarteten Parameter).

Mit Funktionsname.arguments[0] sprechen Sie den Wert des ersten übergebenen Parameters an, mit Funktionsname.arguments[1] den des zweiten Parameters usw.

Beachten Sie:

Seit dem JavaScript-Standard Version 1.4 ist arguments keine Eigenschaft des Funktionsobjekts mehr, sondern steht in der Funktion als lokale Variable zur Verfügung, die Sie einfach über arguments statt Funktionsobjekt.arguments ansprechen können.

nach obennach unten

JavaScript 1.2Netscape 4.0Mozilla Firefox 1Lesen arity

Speichert die Anzahl Argumente, die eine Funktion erwartet. Die Eigenschaft ist nur außerhalb der Funktion verfügbar, auf die sie sich bezieht.

Beispiel:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
<script type="text/javascript">
function Test (Name, Vorname) {
  return (Vorname + " " + Name);
}

alert("Funktion erwartet " + Test.arity + " Argumente");
</script>
</head><body>
</body></html>

Erläuterung:

Das Beispiel definiert eine Funktion Test(), die zwei Parameter erwartet. Die Funktion wird im Beispiel gar nicht aufgerufen, dafür wird in einem Meldungsfenster ausgegeben, wie viele Argumente die Funktion Test() erwartet. Dazu wird die Eigenschaft arity auf die gewünschte Funktion angewendet.

Beachten Sie:

Mit dem JavaScript-Standard Version 1.4 wurde arity als veraltet erklärt und durch die Eigenschaft length ersetzt. Diese Eigenschaft können Sie genauso wie arity verwenden, z.B. Funktionsobjekt.length.

nach obennach unten

JavaScript 1.1Netscape 3.0MS IE 4.0Mozilla Firefox 1Lesen caller

Speichert die gesamte Funktion, von der aus die aktuelle Funktion aufgerufen wird. Hat den Wert null, falls der Aufruf direkt von einem Event-Handler oder beim Einlesen der Datei von außerhalb einer anderen Funktion erfolgte. Die Eigenschaft ist nur innerhalb der Funktion verfügbar, auf die sie sich bezieht.

Beispiel:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
<script type="text/javascript">
function Test () {
  alert(Test.caller);
}

function Aufruf () {
  Test();
}
</script>
</head><body>
<a href="javascript:Aufruf()">Wer ruft Test()?</a>
</body></html>

Erläuterung:

Das Beispiel definiert im Dateikopf zwei Funktionen, eine Funktion Test() und eine Funktion Aufruf(). Die Funktion Test() tut nichts anderes als auszugeben, von wo sie aufgerufen wurde, die Funktion Aufruf() nichts anderes, als Test() aufzurufen. In der Datei ist ferner ein Verweis notiert. Beim Anklicken des Verweises wird die Funktion Aufruf() aufgerufen, die wiederum Test() aufruft, woraufhin Test() den gesamten Code der Funktion Aufruf() ausgibt.

Beachten Sie:

Die caller-Eigenschaft wurde in JavaScript 1.3 als veraltet ("deprecated") erklärt. Ein Ersatz existiert nicht.

 nach oben
weiter Seite Math
zurück Seite Date
 

© 2007 Seite Impressum

Originaladresse dieses Dokuments: http://de.selfhtml.org/javascript/objekte/function.htm