Im zweiten Teil möchte ich erklären, wie man mit bind(this)
innerhalb der Funktion die Gültigkeit von this bestimmen kann.
Bevor ich das mache, muss ich noch etwas anderes erklären und zwar die Funktionsreferenz.
Wenn man einen EventListener benutzt hat, hat man eine Funktionsreferenz schon kennengelernt.
Es folgt ein Beispiel
this.addEventListener("click", meineFunktion);
Hierbei ist meineFunktion eine Referenz auf eine Funktion
Bei einer Funktionsreferenz werden keine Klammern aufgeführt und somit kann man auch
keine Funktionen, die Parameter erwartet auf die Art aufrufen. Javascript erlaubt nicht an jeder Stelle Funktionsaufrufe, beispielsweise darf man in Konstruktorfunktionen keine Funktionsaufrufe verwenden.
Eine Funktionsreferenz ist ein Verweis auf die Funktion oder das Objekt. Es ist ein Zeiger. Es ist kein Kommando es ist kein Funktionsaufruf. Siehe auch molly
.
Erzeuge eine Funktion und lasse dir eine Referenz auf die Funktion anzeigen:
function erg(){return 5;}
console.log(erg);
Hier wird die eigentliche Funktion angzeigt:
Wenn man hingegen den Funktionsaufruf eingibt, erhält man in diesem Beispiel den Wert 5
console.log(erg());
In der Regel wird eine Funktionsreferenz einer Variablen übergeben und diese wird dann aufgerufen. Erst dann wird die Funktion aufgerufen.
Die Funktion wird als Funktionsreferenz an die Variable myVar übergeben. myVar()
wird aufgerufen.
function machWas(){ alert("ich habe was gemacht"); } var myVar = machWas; myVar();