this als Parameter bei Funktionen
Paul
- javascript
0 misterunknown1 molily
Hallo!
In einer Funktion muss ich das auslösende Element haben. Bis jetzt mach ich das mit
meineFunc('text', this);
Funktioniert. Allerdings find ich es umständlich, bei jedem Aufruf das this mitzugeben. Kann man dieses nicht auch innerhalb der Funktion ermitteln?
Danke,
Paul
Moin,
Allerdings find ich es umständlich, bei jedem Aufruf das this mitzugeben. Kann man dieses nicht auch innerhalb der Funktion ermitteln?
IMHO nicht.
Grüße Marco
Allerdings find ich es umständlich, bei jedem Aufruf das this mitzugeben. Kann man dieses nicht auch innerhalb der Funktion ermitteln?
Du könntest höchstens alternativ das Event-Objekt übergeben, damit hast du letztlich auch mehr Kontrolle in der Funktion.
Allgemein: Wenn du dutzende Event-Handler mit solchen Aufrufe hast:
meineFunc('a', this);
…
meineFunc('b', this);
…
meineFunc('c', this);
So solltest du über eine effizientere Möglichkeit nachdenken, um diese Events zu behandeln. Vielleicht kann hier Event-Delegation helfen, oder das Erzeugen dieser Funktionen mit einer weiteren Funktion:
elementA.onclick = makeFunc('a');
elementB.onclick = makeFunc('b');
elementC.onclick = makeFunc('c');
function makeFunc (type) {
return function (e) {
meineFunc(this, e);
// Oder meineFunc.call(this, e), damit this auch in meineFunc weiter auf das Element zeigt
}
}
Das ist im Grunde Function-Binding, dazu gibt es in ECMAScript 5 (d.h. in neueren Browsern) eine Helferfunktion.
Mathias