| |||||||
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: Feb 2010
Beiträge: 108
| this-Referenz in anonymen Methoden
Hallo, gibt es eine elegante Variante auf die this-Referenz in einer anonymen Methode zuzugreifen? Zum Beispiel: ActionScript:
ActionScript:
|
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 11.856
|
Anonyme Funktionen sind nicht im namespace der Klasse registriert, sondern im anonymen namespace. Das heisst, die Funktion kennt ihre Umgebung - die Klasse - nicht. Das Binding der Funktion an die Klasse wird durch ein Closure implementiert. So kann die Funktion überhaupt erst von dem Dispatcher als "eigene" Methode verwendet werden. Dein Problem ist, dass der Scope der Funktion nicht, wie augenscheinlich, die Funktion in der sie definiert wurde ist, sondern wie gesagt anonym ist. Ein bessere Implementierung wäre: ActionScript:
ActionScript:
__________________ github: https://github.com/floriansalihovic/L18nExample <florian xmlns:speaker="www.beyondtellerrand.com/ffk11/speakers_sessions" xmlns:trainer="http://www.beyondtellerrand.com/ffk11/workshops" /> and @ g+ |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2010
Beiträge: 108
|
Danke, aber einen großen Unterschied zwischen deinem ersten Vorschlag und meiner Implementierung ist für mich nicht ersichtlich. Ich registriere gleich die Funktion beim EventHandler und du merkst sie dir noch vor. Zu meinem Beispiel sei vielleicht angemerkt, spielt auch für deine zweite Variante eine Rolle, dass das ganze in einem größeren Kontext statt findet. Im Prinzip gibt es schon eine Strategy-Klasse, allerdings weiß diese nicht, um was für ein Kind (in diesem Fall eine Checkbox) es sich genau handelt. Die registerFunction() hat die Bedeutung, dass sich irgendeine Funktion (also irgend jemand) dafür interessiert, wann sich an dem Kind etwas ändert. Und je nachdem, um was für ein konkretes Kind es sich handelt, können die auslösenden Ereignisse ganz andere sein. Und über die anonyme Methode wollte ich einfach ein paar Properties usw. sparen, da die Klassen meist eh schon sehr voll sind und diese Informationen auch sonst an keiner anderen Stelle benötigt werden. Was die ungarische Notation betrifft:
|
| | |
| | #4 (permalink) | ||
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 11.856
| Zitat:
Zitat:
![]() Und noch eine Variante, die ich wählen würde, müsste ich mit einer Closure arbeiten: ActionScript:
__________________ github: https://github.com/floriansalihovic/L18nExample <florian xmlns:speaker="www.beyondtellerrand.com/ffk11/speakers_sessions" xmlns:trainer="http://www.beyondtellerrand.com/ffk11/workshops" /> and @ g+ | ||
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Wie anonymen Listener wieder entfernen? | Bartolo | ActionScript 3 | 6 | 18-02-2007 21:54 |
| Eine Referenz ist ein referenz ist eine Referenz... | kelor | ActionScript 1 | 2 | 28-01-2005 22:10 |
| linearTween und methoden???? | dabinjo | Softwarearchitektur und Entwurfsmuster | 0 | 24-11-2004 00:51 |
| loadVars nur mit anonymen Funktionen ? | Blinker | Flash MX | 3 | 21-07-2004 14:34 |
| xml methoden | lepimax | Flash mit XML und Webservices | 1 | 29-03-2004 13:16 |