Sebastian: Dynamischer Objectname

Hi,

ist es irgend wie möglich einen dynamsichen Objectnamen zu erstellen?

gesamt_id = 0;

eval("toper"+gesamt_id) = new obj("Mein Top");
eval("toper"+gesamt_id).add("hallo");

Das geht leider so nicht. Da bekomm ich die Fehlermeldung:
Kann dem Ergebnis einer Funktion nicht zugewiesen werden.

Gibts sonst noch ne Möglichkeit?

Grüsse, Sebastian

  1. Hi,

    ist es irgend wie möglich einen dynamsichen Objectnamen zu erstellen?

    gesamt_id = 0;

    eval("toper"+gesamt_id) = new obj("Mein Top");
    eval("toper"+gesamt_id).add("hallo");

    Das geht leider so nicht. Da bekomm ich die Fehlermeldung:
    Kann dem Ergebnis einer Funktion nicht zugewiesen werden.

    Gibts sonst noch ne Möglichkeit?

    Ja. Vermeide eval!

    Oft läßt sich das du willst besser mit Arrays lösen.

    Wenn du mit arrays nicht umgehen kannst oder willst, dann mach es so:
    window[String]

    Aber immer eval vermeiden!

    Struppi.

    1. Hmm ok. Wirklich schade das das nicht geht. Habs jetzt mit Arrays gelöst.

      Warum sollte man eval vermeiden? - funktioniert das nicht in so vielen Browsern?

      1. Hmm ok. Wirklich schade das das nicht geht. Habs jetzt mit Arrays gelöst.

        Warum sollte man eval vermeiden? - funktioniert das nicht in so vielen Browsern?

        nein, es ist aber langsam, dein Skript wird schwerer zu debuggen und es wird instabiler.

        Aber was geht nicht?

        es geht. Dein Beispiel:
        window["toper" + gesamt_id] = new obj("Mein Top");
        window["toper" + gesamt_id].add("hallo");

        aber wie gesagt ein Array ist sinnvoller.

        Struppi.