Hallo Michael!
das kann auf keinen Fall so sein, denn mit den () nach
dem Funktionsnamen wäre die Funktion this.feld_mm()
der Rückgabewert der Funktion feld_mm. Ausserdem wäre
das ein(e) falsche(r) Syntax.
Stimmt, die Klammern gehören weg, aber Funktionen sind in Javascript genauso Objekte. Daher kann man auch funktionen auf funktionen "zuweisen" ! -gibt's echt, ehrlich! Nur gehören die Klammern weg, da jedoch deine Funktion dann genauso heissen würde wie deine Variable müsstest du dir einen anderen Namen für eine(n) der beiden einfallen lassen.
Vgl:
var fenster = new Window();
var feld = new Array();
var funktion = new Function();
... im Grunde das selbe Schema !
Ich hab dir einen Auszug aus einem Skriptum von einer meiner Übungen auf der Uni zum Thema Javascript:
Ja, wir lernen sowas wirklich auf der Uni ;-)
Aber frag nicht wie ... ! - SELFHTML-Forum is the place to be!!
<html>
<head>
<script language="JavaScript">
function zeige_umfang (r) { // Deklaration einer Objektmethode (=Funktion)
var umfang, pi=3.14;
alert("Kreis "+this.name + " mit Umfang " + (pi*2*r));
// this.name greift auf Komponente name der
// aktuellen Instanz von Objekt kreis zu.
}
function position (x,y) { // Deklaration von Objekt position
this.posx = x; // mit 2 Komponenten posx und posy
this.posy = y; // this zeigt auf aktuelle Objektinstanz.
}
function kreis (name,radius,pos) { // Deklaration von Objekt kreis
this.name = name;
this.radius = radius;
this.pos = pos; // Objekt als Objektkomponente
this.zeige_umfang = zeige_umfang; // Methodenzuweisung !!!!!!!
}
</script>
</head>
<body>
<script language="JavaScript">
pos1 = new position(0.0,0.0);
kreis1 = new kreis("Kreis1",1.23,pos1);
kreis1.zeige_umfang (kreis1.radius);
</script>
</body>
</html>
Du musst es mir ja nicht glauben, aber über JavaScript hab ich mich schon längst aufgehört zu wundern ;-)
Dieses Beispiel kannst du Strg-Kopieren und austesten. Es funktioniert einwandfrei :-)
Grüsse
Bernhard