Ashura: this überflüssig?

Beitrag lesen

Hallo molily.

Äh... Die Scope Chain beim Auflösen von Objektnamen und das Aufsteigen von Ereignissen (Bubbling) sind zwei völlig unterschiedliche Dinge. ;) Der Mechanismus der Scope Chain und die Bedeutung von »this« beim Event-Handling hängen aber zusammen.

Ah, also doch etwas Anderes.

»this« hat eine Bedeutung beim Event-Handling, siehe http://www.quirksmode.org/js/this.html und http://www.quirksmode.org/js/events_order.html#link10.

Ja, diese Bedeutung ist mir bereits vertraut und ich nutze sie auch wo ich kann, um Funktionen flexibel zu halten. (Also bezieht sich this innerhalb von Funktionen immer auf das window-Objekt. Aber war z. B. im DOM nicht document das oberste Objekt in der Hierarchie?)

[...] this zeigt immer auf das Elementknotenobjekt, dessen Handler gerade ausgeführt wird. Es entspricht daher Eventobjekt.currentTarget aus DOM Events.

Wieder etwas auf der Liste, was ich unbedingt ein Mal lesen sollte, danke.

Wenn man <element onevent="JavaScript-Code">...</element> notiert, dann ist onevent aus Sicht von JavaScript ein Funktionsobjekt, das am Elementknotenobjekt hängt. Wenn man in einer solchen Funktion einen Objektnamen notiert, ist das Objekt, an dem das Funktionsobjekt hängt, immer this und somit das erste Objekt in der Scope Chain, bei dem gesucht wird. Deshalb sollte »objektname« in einer Handlerfunktion identisch zu »this.objektname« und identisch zu »Eventobjekt.currentTarget.objektname« sein.

Dies habe ich zwar nun auch in obig verlinkten Dokumenten gelesen, dennoch danke für diese erneute Erläuterung.

(Ich sehe schon, in JS lernt man nie aus...)

Einen schönen Donnerstag noch.

Gruß, Ashura

--
Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
30 Days to becoming an Opera8 Lover -- Firefox tools for Opera built-ins
Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
MathML fetzt