| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2005
Beiträge: 310
| Function in Function!
Hi! Kann ich wie folgt eine funktion aufrufen aber gleichzeitig noch einen andere funktion die mit return werte wieder zurückgibt: function1(function2()); hier wird dann funktion 1 aufgerufen, aber mit den Parametern die ich funktion 2 mit return angegeben habe. Nur rein zum Verständnis, funktionieren tut es, aber ich möchte schon auch wissen ob ich mir dass so richtig erkläre!
__________________ |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: May 2005
Beiträge: 310
|
Ok, allerdings findet er die übermittelten Variablen in der funktion die aufgerufen wird nicht wirklich. Ich kann zwar die Variablen ausgeben lassen, aber neue werte zuweisen und wieder neu ausgeben geht nicht. Muss ich die Variablen denn trotzdem noch deklarieren obwohl ich mir die Werte von der anderen funktioner mit return übergeben lasse! function 1() { var neu =1; return neu; } function 2(function 1()) { neu=neu+5; >>> Hier sagt er mir immer: Kann Funktion oder Variable neu nicht finden! } }
__________________ Geändert von velocity. (01-06-2009 um 17:42 Uhr) |
| | |
| | #4 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Code?
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #5 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Wenn du eine Variable in einer Funktion mit "var" deklarierst, ist diese Variable lokal. Das heißt sie ist nur innerhalb dieser einen Funktion verfügbar. Mit einem return gibst du nur den Wert der Variablen, nicht die Variable selbst zurück.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: May 2005
Beiträge: 310
|
also eigentlich sieht es so aus: onFrame(1) { funktion2(funktion1()); } funktion1() { var1 = 3; var2 = 5; var3 = 10; return var1,var2,var3; } funktion2() { list.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void { prozent = var3; >>> Meldung: Funktion oder Variable var3 wird nicht gefunden. } } Ich haber aber den Eindruck, dass diese möglichkeit der übergabe von Variablen an eine andere funktion, nicht das gleiche ist wie wenn ich die funktion so aufrufe: funktion2(var1,var2,var3);
__________________ Geändert von velocity. (01-06-2009 um 18:02 Uhr) |
| | |
| | #7 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Das ist falsch... via AS2... Eine Funktion kann nur einen Rückgabewert haben. Ergo: return var1; oder einer der anderen Rückgabewerte.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #9 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Ja, das wird wahrscheinlich mit einem Sprachkonstukt zusammenhängen, dass sich Closure nennt. Zumal ich nicht verstehe, wieso du (<- ?) einer Callback Funktion die Argumente mitgibst?!
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #11 (permalink) | |
| voidboy Registriert seit: Sep 2004 Ort: München
Beiträge: 5.588
| Zitat:
Das du die tracen kannst liegt daran, das du die Variablen nicht lokal in der Funktion deklariert hast. Du könntest sie also auch in der 2 Funktion tracen ohne das du den Rückgabewert der ersten übergibst. | |
| | |
| | #12 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Wenn du mehrere Werte die du in einer Funktion bestimmt hast, die du in einer anderen Funktion verwenden möchtest, dann musst du sie in ein Objekt speichern, und dann dieses Objekt aus der ersten Funktion zurückgeben. Wenn du gleich noch was für die Zukunft lernen möchtest, dann machst du nicht einfach nur ein simples Objekt, sondern du definierst in einer Klasse, was alles in dem Objekt gespeichert ist: PHP-Code: In deiner ersten Funktion erzeugst du dann eine neue Instanz von der Klasse (also ein Objekt, das so aufgebaut ist, wie in der Klasse angegeben) PHP-Code: PHP-Code: PHP-Code: PHP-Code: PHP-Code:
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: May 2005
Beiträge: 310
|
Warum ich dass so mache hat folgenden grund, eine gewisse funktion soll eben durchlaufen werden, ist diese abgearbeitet wird automatisch eine weitere funktion aufgerufen, allerdings möchte ich in dieser nicht jedesmal die werte neue ermitteln müssen, bzw. möchte ich nicht jedes mal die gleiche zeilen eintragen damit ich die werte von variablen habe. Deshalb dachte ich an eine funktion die eben immer die variablen werte ermittelt und mir die variablen mit samt den werten zurückliefert.
__________________ |
| | |
| | #14 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.141
|
Sorry wegen dem Closure... hab nur einen kurzen Blick auf den Code geworfen Bzgl deines Problems: Deswegen das Objekt.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: May 2005
Beiträge: 310
|
Alles klar, dann versteh ichs doch richtig. mit return übergebe ich nur den inhalt einer variablen nicht die variable selbst. Außerdem ist nur ein rückgabewert möglich. Mit einem Objekt erstelle ich also wie immer eine obergruppe, die dann mit return als QUASI ein WERT zurückgegeben werden kann. ![]() Was ist aber mit funktion (var1,var2,var3...) übergebe ich so nur werte oder die komplette variable!
__________________ |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| erklärung, variablen |
| Themen-Optionen | |
| Ansicht | |
| |