Warum hat die folgende anonyme JS-Funktion "e" als Parameter? Ich verstehe, dass es das Ereignis ist, aber wie wurde es gespeichert? Dieses "e" wird nirgendwo erwähnt, außer in diesem Event-Listener und im Handler, den es verwendet.Anonyme Funktion des Ereignishörers
Antwort
Denken Sie daran, dass diese anonyme Funktion den Moment aufgerufen wird, in dem ein keyup
Ereignis auftritt. Die anonyme Funktion sagt: "Hey, wenn du mich anrufst, solltest du mir einen Streit liefern." Wenn also das Ereignis keyup
eintritt, ruft der Browser diese anonyme Funktion mit einem Argument auf, das das Ereignisobjekt sein wird. Das Ereignisobjekt wird in dem Moment erstellt, in dem das Ereignis eintritt.
Das Vorhandensein eines benannten Parameters ändert das Verhalten des Browsers nicht. Das Ereignisobjekt wird immer an den Handler übergeben. – Andreas
Danke für diese Klarstellung. Ich bin mir dessen bewusst, aber ich wollte das technische Rauschen aus meiner Antwort herauslassen, um mich auf das zu konzentrieren, was der Fragesteller gefragt hat. – kevin628
Nun, danke euch beiden, das macht mir die Dinge sehr klar, also bedeutet das, dass es nicht "e" sein muss, ich kann jeden Platzhalter verwenden, den ich mag, oder? –
Die Methode addAventListener
nimmt eine Funktion als Eingabe und ruft diese Funktion dann bei jedem Ereignis mit einem event-object auf.
Ein einfaches Beispiel zur Veranschaulichung wurde hinzugefügt.
function EventCreator() {
var listeners = [];
var counter = 0;
setInterval(function() {
counter++;
listeners.forEach(function(listener) {
listener(counter);
});
}, 1000);
this.addListener = function(listener) {
listeners.push(listener);
};
}
var eventCreator = new EventCreator();
eventCreator.addListener(function(e) {
console.log("An event has occured: ", e);
});
Docs: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
Danke, dude, aber nur eine Frage, warum ist nicht die Addlistener Funktion innerhalb der eingestellten Intervallfunktion? Muss es nicht jedes Mal laufen, wenn es läuft? –
Die Add-Listener-Funktion hängt nur einen Listener an eine Liste an. Und wenn ein Ereignis eintritt, gehen Sie durch die Liste der Listener und rufen sie nacheinander mit dem neuen Ereignis auf (in diesem Beispiel ist es ein Zähler). Die Funktion, die als addListener-Parameter gesendet wird, wird nicht sofort aufgerufen, sondern in der Liste gespeichert, bis das Ereignis eintritt und dann aufgerufen wird. – knutesten
okaaaaaay vielen Dank! –
- 1. Anonyme Funktion in Funktionszusammensetzung
- 2. TypeScript anonyme Funktion
- 3. Anonyme Funktion in lapply
- 4. Zurück Anonyme Funktion
- 5. Clojure: benannte anonyme Funktion
- 6. Javascript anonyme Funktion Frage
- 7. array_map Inline anonyme Funktion
- 8. Verunstetigen anonyme Funktion Matlab
- 9. Funken anonyme Funktion Bytecode
- 10. array_walk eine anonyme Funktion
- 11. Javascript verhindern anonyme Funktion?
- 12. Anonyme Funktion mit AutoMapper
- 13. JavaScript anonyme setTimeout-Funktion
- 14. anonyme Javascript-Funktion aufrufen! Funktion vs Funktion
- 15. Query-Erstellung: Übergabe des Arguments an anonyme Funktion
- 16. Python: anonyme Variable für einen Teil des Rückgabewerts einer Funktion
- 17. Java 8: Paramenter auf anonyme Funktion während des Gesprächs vorbei
- 18. Scala Action/anonyme Funktion Typenkonflikt
- 19. Wrapping-Controller in anonyme Funktion
- 20. Yii2 Button onclick anonyme Funktion
- 21. anonyme Funktion in SML Curry
- 22. anonyme Funktion in JavaScript-Fehler
- 23. Senden Parameter auf anonyme Funktion
- 24. PHP: anonyme Funktion und Argumente
- 25. jquery anonyme Funktion Deklaration Bedeutungen
- 26. D: unerwünschte anonyme Funktion Attribut
- 27. data.table: anonyme Funktion in j
- 28. Matlab anonyme Funktion Liste Argumente
- 29. Erstellen stückweise anonyme Funktion Matlab
- 30. So identifizieren Sie eine anonyme Funktion
'e' ist ein Parameter, der durch die CLIP-Funktion ist vergangen ist, wenn das Ereignis ausgelöst wird. Versuchen Sie zu denken, dass irgendwo ein Ort ist, an dem alle Funktionen des 'keyup' -Ereignisses im' body'-Element hängen. Wenn diese Ereignisse ausgelöst werden, führt diese Funktion so etwas wie "callback (eventFired)" aus. –
Ok, es gibt so etwas wie eine Standard-oder Universal-Bibliothek bei der Arbeit hier und die Funktion namens "statt", dass Anonymous dieses Argument braucht, habe ich es richtig? –
Es ist der Browser, auf dem der Code ausgeführt wird, der dafür verantwortlich ist. Es ist nicht so, in diesem Fall "braucht es" dieses eine Argument. Es liegt an dir, es zu benutzen oder nicht. Der Aufrufer fügt der Callback-Funktion (in diesem Fall dem Ereignis "event") ein beliebiges Argument hinzu, das Sie verwenden können, indem Sie einen Parameter in die von Ihnen bereitgestellte Funktion einfügen. –