![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
this[this.listobj[i]] = function(){return eineexternefunktion(???,arguments}; |
|
Der eineexternefunktion muss ich auch noch den Namen der Funktion (im Beispiel meinefunk1) mitgeben (durch die ??? ersetzt). |
#3
| |||
| |||
|
|
Thomas Weiler wrote: this[this.listobj[i]] = function(){return eineexternefunktion(???,arguments}; Der eineexternefunktion muss ich auch noch den Namen der Funktion (im Beispiel meinefunk1) mitgeben (durch die ??? ersetzt). Der Name der Eigenschaft des Objektes mag z.b 'meinefunk1' sein, aber diese Eigenschaft hat als Werte eine _anonyme_ Funktion, schliesslich steht in der Zuweisung nur ... = function () { ... } da ist kein Name fuer die Funktion vergeben. Mir ist nicht klar geworden, was du suchst, aber solche Versuche, die Namen von Objekten zu finden (und Funktionen sind in JavaScript auch Objekte), uebersehen haeufig, das man in objektbasierten Sprachen solche Objekte selbst direkt uebergeben kann, statt umstaendlich vom Namen auf ein Objekt zu schliessen. |
#4
| |||
| |||
|
|
Ganz einfach würde der Aufruf klappen, wenn der Programmierer, der diese Schnittstelle benutzt einfach direkt eineexternefunktion aufruft und die Funktion als Parameter mit übergibt. Mein Gedanke für diese Schnittstelle war aber, dass der Programmierer sich keine Gedanken über die Logik dahinter machen braucht. Er hantiert mit den Java-Funktionen, als wären sie automatisch auch auf Client-Seite da. Daher hole ich mir diese beim Aufruf des Konstruktors vom Java-Server und erzeuge für jede eine entsprechende JavaScript Funktion im Objekt. Aber gerade dieser Umbau bricht mir jetzt natürlich erstmal das Genick, da ich den Funktionsnamen nicht mehr als Paramter, sondern als Funktion (Eigenschaft des Objektes) selber benutze. |
![]() |
| Thread Tools | |
| Display Modes | |
| |