Hallo,
aLink.onclick = function() { alert('clicked ' + ix); return false; }
> Das ändert auch was, aber leider nicht ganz so wie gewünscht.
> Egal welchen der Links ich anklicke, es wird der Wert für ix ausgegeben, der zum Klickzeitpunkt aktuell ist (in dem Fall also immer die 10). Ich hätte aber gerne den Wert, der zum Erzeugungszeitpunkt der Funktion aktuell ist. Wie kann ich den in die function einsetzen?
Funktionen sind Objekte, die vom Prototyp Function abgeleitet sind. Das Instantiieren von Objekten funktioniert bekanntlich in erster Linie über das Aufrufen der Konstruktor-Funktion mit dem Schlüsselwort »new« davor.
Auch Function kann als Konstruktor-Funktion aufgerufen werden. Diese nimmt als letzten Parameter den Code des Funktionskörpers als String entgegen, die Parameter davor sind die Funktionsparameter (ebenfalls Namen als Strings). Somit kannst du Funktionen mit variablem Körper schreiben.
`aLink.onclick = new Function("var ix = '" + ix + "'; alert(ix);");`{:.language-javascript}
Beispiel für Entgegennehmen eines Parameters (hier e = Eventobjekt):
`aLink.onclick = new Function("e", "var ix = '" + ix + "'; alert(ix + e.type);");`{:.language-javascript}
Mathias