Call, Apply und Bind
Zuletzt aktualisiert
Zuletzt aktualisiert
Mit den Funktionsmethoden können wir das explizit setzen. Dabei gibt es drei Methoden: call
, apply
und bind
.
call()
-MethodeHier sagen wir also, dass die globale Funktion book
das Gleiche macht wie die Methode lufthansa.book
. Nun bekommen wir aber einen Fehler, da das this
-Keyword undefined
ist.
Um das nun zu umgehen, können wir die call
-Methode nutzen, um zu sagen, dass wir einen Flug für Lufthansa bzw. Eurowings buchen wollen.
Das erste Argument bestimmt also das this
-Keyword.
apply()
-MethodeDie apply()
-Methode funktioniert ganz ähnlich, jedoch geben wir die Argumente in Form eines Arrays mit:
bind()
-MethodeDie bind()
-Methode ist praktisch, wenn man eine Methode sehr oft braucht, jedoch mit einem anderen this
. Dabei gibt uns die bind()
-Methode eine Funktion zurück. Diese Funktion können wir nun überall aufrufen, ohne dass this
-Keyword durch call()
oder apply()
setzen zu müssen.
Es ist aber auch möglich andere Parameter fest zu definieren. Hier möchte man z.B. immer eine Buchung für den Eurowings Flug EW23 ausführen:
Das this
-Keyword bei Event-Listeners bezieht sich immer auf das HTML-Element, das heisst, wenn wir eine Methode aufrufen, welche das this
-Keyword braucht, wird diese fehlschlagen. Hier kommt die bind()
-Methode ins Spiel wo wir eben das this
-Keyword bestimmen können: