Christian: Kleine Frage zu einem Tag!

Hi!

Ich bin gerade am Javascript lernen und durchforste verschiedene scripts um mir ein besseres bild von allem zu machen.

jetzt bin ich auf einen tag gestossen den ich leider nicht begreife.

eval('document.preload'+g+'.src = "'+pics[g]+'";');

dies ist ein einer for schleife wobei pics ein array ist.
im slefhtml steht, das eval zum ausrechnen von operationen ist aber ich weiss nicht recht wie ich das hier verstehen soll.

über hilfe wäre ich sehr froh!

see ya

  1. use Mosche;

    eval('document.preload'+g+'.src = "'+pics[g]+'";');

    dies ist ein einer for schleife wobei pics ein array ist.
    im slefhtml steht, das eval zum ausrechnen von operationen ist aber ich weiss nicht recht wie ich das hier verstehen soll.

    Der Autor hat durchnummerierte Objekte, zB
    preload1
    preload2
    Das sind anscheinend Bilder oder so.
    Er kann diese Objekte aber nur dynamisch ansprechen, wenn er den Objektnamen zusammensetzt 'document.preload'+g+'.src'. Das wird aber nicht ausgeführt, da es ein String ist. Deswegen muss er den gesamten Befehl in eval stecken, damit er ausgeführt wird. Du kannst es dir so merken: du kannst mit eval Javascript dynamisch ausführen lassen.

    use Tschoe qw(Matti);

  2. Hallo,

    Ich bin gerade am Javascript lernen und durchforste verschiedene scripts um mir ein besseres bild von allem zu machen.

    jetzt bin ich auf einen tag gestossen den ich leider nicht begreife.

    eval('document.preload'+g+'.src = "'+pics[g]+'";');

    Das sehe ich weit und breit kein Tag, nicht mal ein Element ...

    dies ist ein einer for schleife wobei pics ein array ist.
    im slefhtml steht, das eval zum ausrechnen von operationen ist aber ich weiss nicht recht wie ich das hier verstehen soll.

    Mi eval kann man dynamischen JavaScript-Code "ausrechnen", z. B. kann man ein simples alert("Hallo Welt!"); auch etwas aufwaendiger haben:

    var a="al", b="ert", c="Hallo Welt!";
    eval(a+b+"(c)");

    Man kann solche Konstrukte oft vermeiden, in dcljs sagen die Leute sogar, eval waere boese ...

    Den obigen Code koennte man (abhaengig vom Script-Kontext) auch einfach so schreiben:
    document.images["preload"+g].src = pics[g];

    MfG, Thomas