Ich bin nicht genau sicher, wie meine Frage Begriff, mir ein Beispiel so lassen präsentieren:Wie kann ich einem Ereignis-Listener in der Initialisierungsfunktion eine Prototyp-Funktion hinzufügen?
function foo() {
window.addEventListener("keydown", function(event) {
bar(event.keycode);
}
foo.prototype.bar = function (keycode) {
//code
}
Ich habe versucht this.bar()
verwenden, aber das ergibt sich die window
als this
in Verwendung. Gibt es eine Möglichkeit, dies zu tun, oder muss ich eine andere Initialisierungsmethode manuell aufrufen?
Warum binden? 'window.addEventListener (" keydown ", this.bar, false);'? –
@SheikhHeera, so dass 'bar' im Kontext von' this' aufgerufen wird, ansonsten wird es im globalen Umfang ausgeführt und es wird kein Vorteil sein, eine Prototyp-Funktion gebunden zu haben. – zzzzBov
@SheikhHera '.bind' behebt' diesen' Wert, um immer gleich zu sein, egal wie die gebundene Funktion aufgerufen wird. In diesem Fall wird es immer das "foo" -Objekt sein. – Esailija