[JS] String uitlezen en uitvoeren

Pagina: 1
Acties:

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Topicstarter
Stel ik heb in een proggie en array van een bepaalde lengte die ik heel vaak moet doorlopen:

JavaScript:
1
2
3
4
AF[0].moveBy(-12, null);
AF[1].moveBy(-12, null);
AF[2].moveBy(-12, null);
AF[3].moveBy(-12, null);


En dat wil ik vervangen door:

JavaScript:
1
Run("AF[q].moveBy(-12, null)", 4);


Hoe moet die functie run er dan uitzien? Zo misschien:

JavaScript:
1
2
3
4
5
6
7
function Run(code, loops)
{
  for (var i = 0; i < loops; i++)
  {
    setTimeout(code, 0);
  }
}


Maar dat is een ranzige oplossing, heeft iemand betere ideeën?

Edit: Ook moet die 'q' nog vervangen worden door 'i' natuurlijk.

[ Voor 8% gewijzigd door André op 20-08-2003 18:49 ]


  • RSchellhorn
  • Registratie: Augustus 2001
  • Laatst online: 09:33
JavaScript:
1
setTimeout(code,0);


zou je kunnen vervangen door:

JavaScript:
1
2
var voerUit = new Function(code);
voerUit.call();


Kijk daarbij eventueel in de msdn hoe je call gebruikt.

"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)


  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Topicstarter
Slayer08 schreef op 20 augustus 2003 @ 19:12:
JavaScript:
1
setTimeout(code,0);


zou je kunnen vervangen door:

JavaScript:
1
2
var voerUit = new Function(code);
voerUit.call();


Kijk daarbij eventueel in de msdn hoe je call gebruikt.
Hmmm, daar had ik inderdaad nog niet aan gedacht, maar is het niet zo dat ik op een gegeven moment dan 10.000 functies in mijn geheugen heb zitten?

  • RSchellhorn
  • Registratie: Augustus 2001
  • Laatst online: 09:33
Nee daarvoor dient de var voor de declaratie, die zorgt er voor dat function alleen binnen de for loop bestaat. Daardoor wordt bij het verlaten of opnieuw bovenaan beginnen van de for loop, de variabele verwijderd.

[ Voor 20% gewijzigd door RSchellhorn op 20-08-2003 19:25 ]

"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)