Florian Walthard: Name einer neuen Variable in einer Variable gespeichert!

hi zusammen

Mein Problem ist im Grunde einfach.

Ich habe einen dynamisch erstellten Namen einer neuen Variable während einer FOR-Schleife in einer Globalen Variable gespeichert.
Nun möchte ich diesen Namen für eine neue Variable gebrauchen.

Wie mache ich hier die Zuweisung?

Bsp. das nicht geht! ;-)

var [for-variable] = new MyObject();

danke für eure Hilfe

mfg
florian

  1. Hi,

    Ich habe einen dynamisch erstellten Namen

    sowas lässt sich leicht durch den Einsatz von Arrays o.ä. vermeiden (und sollte vermieden werden), so dass sich Dein Problem gar nicht mehr stellt.

    Cheatah

    1. sowas lässt sich leicht durch den Einsatz von Arrays o.ä. vermeiden (und sollte vermieden werden), so dass sich Dein Problem gar nicht mehr stellt.

      Hi..

      Irgendwie hatte ich schon immer Problme mit Arrays.. ;-)
      Wie zu definieren und anzusprechen ist mir klar.

      Kann ich den in einem Array auch mehrere Objekte speichern?
      In meinem Beispiel müsste ich etwa 10 oder noch mehr Objekte mit ca. 10 Eigenschaften speichern können.

      Beispiel:

      // Funktion welche das neue Objekt erstellt!

      function MyHauptmenue( name, value, textfarbe, hintergrundfarbe, schriftart, schriftgroesse, link, target, onclick, aktiv )
       {
       this.name = name;
       this.text = value;
       this.farbe = textfarbe;
       this.fontface = schriftart;
       this.bgfarbe = hintergrundfarbe;
       this.fontsize = schriftgroesse;
       this.link = link;
       this.target = target;
       this.onclick = onclick;
       this.aktiv = aktiv;
       }

      // Erstellen des neuen Objektes in einer später folgenden FOR-Schleife!

      var Variable = new MyHauptmenue(currenthm, document.forms[0][hmtemptitel].value, hmfontcolor, hmbgcolor, hmfontface, hmfontsize, document.forms[0][hmtempziellink].value, document.forms[0][hmtempzielframe].value, '('+[currentmyhm]+'.aktiv==1)?'+[currentmyhm]+'.aktiv=0:'+[currentmyhm]+'.aktiv=1;setCookie('+[currentmyhm]+'.name, '+[currentmyhm]+'.aktiv); location.reload();', document.forms[0][hmtempoffen].value);

      1. Moin,

        Kann ich den in einem Array auch mehrere Objekte speichern?
        In meinem Beispiel müsste ich etwa 10 oder noch mehr Objekte mit ca. 10 Eigenschaften speichern können.

        Klar kannst du. Grundsätzlich kannst du in einem Array alles speichern, sogar andere Arrays und natürlich auch Objekte.

        Nehmen wir mal an, dein Array soll arMyHauptmenue heißen.
        var anzahl // gewünschte Anzahl von Menue-Objekten
        var arMyHauptmenu = new Array();
        arMyHauptmenu[0] = new MyHauptmenue(deine 10.0000 parameter);
        arMyHauptmenu[1] = new MyHauptmenue(deine 10.0000 parameter);
        Es steht also in jedem Item deines Arrays eine Objekt deiner Klasse MyHauptmenue.

        Auf die textfarbe von arMyHauptmenu[1] kannst du dann so zugreifen:
        arMyHauptmenu[1].textfarbe.

        Übrigens kannst du durchaus variable Variablenamen haben. Das Zauberwort dafür heißt eval(); Cheatah hat wahrscheinlich recht, dass du das in deinem Falle besser lassen solltest, aber hier mal ein kleines Beispiel.

        <html>
          <head>
            <title>variable Variablen in JS</title>
            <script language="JavaScript">
             var myVarFunction = "schnubbidi";
             var myVarVar = "blub";

        var blub = "gugucks";

        function schnubbidi() {
         alert("Funktion schnubbidi wurde aufgerufen.");
             }

        // ruft die Funktion auf, deren Name in der Variablen
            //  myVarFunction als String notiert ist.
            function evalFunction () {
              var varname = eval(myVarFunction +"()");
            }

        // liest den Inhalt der Variablen aus, die in der Variablen
           // myVarVar als String notiert ist, und schreibt diesen in
           // ein DIV mit der ID anzeigen.
           function evalVar() {
             document.getElementById("anzeigen").innerHTML = eval("blub");
           }

        </script>
        </head>
        <body>
          <div onclick="evalFunction()">Funktion schnubbidi aufrufen</div>
          <div onclick="evalVar()">variablen Variableninhalt anzeigen</div>
          <div id="anzeigen"></div>
        </body>
        </html>

        Liebe Grüße, Uschi