[JavaScript] Funktionen dynamisch erstellen, aber einen Parameter fest von "außen" rein *erledigt*

theHacker

sieht vor lauter Ads den Content nicht mehr
Teammitglied
ID: 69505
L
20 April 2006
22.680
1.315
[JavaScript] Funktionen dynamisch erstellen, aber einen Parameter fest von "außen" rein *erledigt*

Moin.
Ich und meine beschränkten JS-Kenntnisse bräuchten mal kurz Hilfe.

Folgender Beispielcode, um zu verdeutlichen, was ich überhaupt will:
PHP:
function foo()
{
  x[0] = function()
  {
    y = y + 0;
  };
  x[1] = function()
  {
    y = y + 1;
  };
  x[2] = function()
  {
    y = y + 2;
  };
}
Ich habe so eine Art und möchte das gerne in eine Schleife packen, quasi mit
PHP:
function foo()
{
  for(var i = 0; i < 3; i++)
  {
    x[i] = function()
    {
      y = y + i; // <-- davon sprech ich
    };
  }
}
abkürzen. Das funktioniert nur nicht, weil er das i (siehe Kommentar) nicht durch seinen aktuellen Wert ersetzt, sondern da eben wirklich ein i is, was am Schleifenende den Wert 3 hat und folglich alle Funktionen x[0], x[1] und x[2] y jeweils um 3 erhöhen.

Wie kann ich das bewerkstelligen, dass mein i "ersetzt" und fest in die Funktion reingeschrieben wird? Oder geht das gar nicht?
 
Schon mal probiert dein i global zu machen? Soll heißen außerhalb deiner Funktion foo() zu deklarieren.
 
Ob global oder ned, es hat den Wert 3 am Ende.

Aber weiteres Googlen hat mir die Lösung gebracht:
PHP:
function foo()
{
  for(var i = 0; i < 3; i++)
  {
    x[i] = new Function("y = y + "+i+";");
  }
}
:)