Dynamisch Code erzeugen ?

palatica

Mitglied
Hallo Leute,

bin mir fast sicher das es nicht geht aber brauche dringend eine Anregung wieich dieses Problem lösen kann.

ich will am Ende folgendes haben:
Code:
var lett1 = new Letter(1);
var lett2 = new Letter(2);
var lett3 = new Letter(3);
var lett4 = new Letter(4);
...

Dieser Code soll dynamisch erzeugt werden, da ich vorher nicht ganz genau sagen kann wieviel Objekte ich benötige.

Ich habe es so versucht:
Code:
for(x=0;x<arg.length;x++)
var lett[x] = new Letter(x);

Sieht zwar gut aus, aber eine Schleife die selber Code erzeugt erscheint mir etwas zuviel des Guten.

Wie kann ich sowas trotzdem hinbekommen?


Danke,
Palatica
 
Sieht zwar gut aus, aber eine Schleife die selber Code erzeugt erscheint mir etwas zuviel des Guten.

Wie meinst du das :eek:


Wenn du die Schleife nicht willst, aber vorher nicht weisst, wieviele Objekte du brauchst, erzeuge die Objekt doch erst, wenn du sie brauchst:
Code:
function letter_obj(nr)
{
  
  if(eval('typeof lett'+nr+'=="undefined"'))
    {
      eval('obj=lett'+nr+'=new Letter('+nr+');');
    }
 return eval('lett'+nr);
}
 
Erstmal Danke für deine Antwort und Mühe.

Die Schleife benötige ich aber das mit dem Code erzeugen klappt so nicht.

So wie ich deine Funktion verstanden habe, gebe ich dort eine Zahl ein und es wird ein Objekt erzeugt mit der Zahl als Objektname. Ich habe es versucht, aber es klappt nicht. Habe auch versuchet was zu ändern, aber Fehlanzeige.

Mein Problem ist flgendes:
Ich habe eine Funktion spell, die als Argument ein Wort erwartet. Zu jedem dieses Buchstaben des Wortes sollen Grafiken geladen werden. Jedoch kann ich über die Anzahl der Buchstaben vorher nichts sagen, daher mein Problem mit dem dynnamische Erzeugen des Codes.

Spell("Auto") -> 4 Objekte: lett0 bis 3 von new Letter....

Es soll ein interaktives Lernspiel für Kinder werden.

Ich werde es in Kombination mit PHP versuchen.

Danke!
 
Code:
<script type="text/javascript">
<!--
function Letter()
{
}

function letter_obj(nr)
{
  
  if(eval('typeof lett'+nr+'=="undefined"'))
    {
      eval('obj=lett'+nr+'=new Letter('+nr+');');
    }
 return eval('lett'+nr);

}

function spell(str)
{
  for(i=0;i<str.length;++i)
    {
      obj=letter_obj(i);
      obj.letter=str.charAt(i);
      alert(letter_obj(i).letter);
    }
}
spell('auto');

//-->
</script>
 

Neue Beiträge

Zurück