Avatar ·

Wie bringt man in JavaScript Closures in einer Schleife dazu, sich den Variablenwert aus ihrer Iteration zu merken?

Hallo zusammen! Ich bin ein Neuling in JavaScript und bin auf ein Problem gestoßen, das ich überhaupt nicht verstehe. Ich schreibe einfachen Code: Ich möchte Click-Handler zu mehreren Buttons hinzufügen, sodass jeder seine eigene Nummer ausgibt. Hier ist mein Code: ```javascript const buttons = document.querySelectorAll('button'); for (var i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function() { console.log('Button Nummer ' + i); }); } ``` Aber wenn ich auf einen beliebigen Button klicke, wird in der Konsole immer "Button Nummer 5" (der letzte Wert von i) ausgegeben, egal auf welchen Button ich geklickt habe. Ich habe gelesen, dass das mit Closures zu tun hat, aber ich verstehe nicht, wie man das behebt. Warum passiert das? Wie kann ich erreichen, dass sich jeder Button seine eigene Nummer merkt? Bitte erklärt es mir in einfachen Worten mit Beispielen. Vielen Dank im Voraus!