Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum benötigen Event-Handler in JavaScript-Schleifen Abschlüsse?

Barbara Streisand
Freigeben: 2024-11-06 15:44:02
Original
524 Leute haben es durchsucht

Why Do Event Handlers in JavaScript Loops Need Closures?

Ereignishandler in JavaScript-Schleifen: Die Notwendigkeit von Abschlüssen

In JavaScript kann es bei der Arbeit mit Ereignishandlern innerhalb von Schleifen erforderlich sein Implementieren Sie Abschlüsse, um eine ordnungsgemäße Parameterübergabe sicherzustellen. Betrachten Sie den folgenden Code:

<code class="javascript">for (var i = 0; i < blah.length; i++) {
  var select = document.createElement('select');
  select.onchange = function() {
    onStatusChanged(select, callid, anotherid);
  };
}
Nach dem Login kopieren

Wenn in diesem Szenario das onchange-Ereignis ausgelöst wird, sind die an onStatusChanged() übergebenen Werte in allen -Element), c (die aktuelle Callid) und a (die aktuelle Anotherid)

  • Der Abschluss ruft sofort auf die Funktion und übergibt die aktuellen Werte von s, c und a
  • Wenn das onchange-Ereignis ausgelöst wird, werden die Abschlüsse ausgeführt, um sicherzustellen, dass onStatusChanged() die richtigen Werte für jeden