BloodySword: Varablename aus Strings zusammenbauen

Ich habe mal gesehen, dass manchmal ein $( ... ) in Javascript verwendet wird um Variablennamen aus Strings zusammen zu bauen. Wie genau wendet man das an?

Vielen Dank!

  1. Ich habe mal gesehen, dass manchmal ein $( ... ) in Javascript verwendet wird um Variablennamen aus Strings zusammen zu bauen. Wie genau wendet man das an?

    in vielen c-ähnlichen sprachen funktioniert das ähnlich, in php zb so:

    $variable = 'foobar'; // name für die variable  
    ${$variable} = 'ich bin der inhalt'; // zuweisung des werts in die variable-variable  
    echo $foobar; 
    

    leider ist mir die javascript-syntax diesbezüglich nicht bekannt

    im übrigen sind variable variablen etwas unpraktisch, arrays halte ich in den meisten fällen für die bessere wahl (kommt auf den anwendungszweck an)

    1. Hi,

      leider ist mir die javascript-syntax diesbezüglich nicht bekannt

      var lala = "hallo";
      alert(self["la"+"la"])

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. Hi,

        leider ist mir die javascript-syntax diesbezüglich nicht bekannt
        var lala = "hallo";
        alert(self["la"+"la"])

        Gruesse, Joachim

        Das geht also auch?
        Ist window["la"+"la"] auch erlaubt? Funktionieren tut es, mich interessiert da eher der JavaScript Standard. ^^

        1. Hi,

          alert(self["la"+"la"])

          Das geht also auch?
          Ist window["la"+"la"] auch erlaubt?

          self ist window.

          Funktionieren tut es, mich interessiert da eher der JavaScript Standard.

          Das hat mit window nur in so fern zu tun, dass Variablen im globalen Gueltigkeitsbereich in den JavaScript-Implementierungen der Browser als Eigenschaften des window-Objektes hinterlegt werden.
          Das gilt aber generell fuer jede andere Objekteigenschaft genauso.

          MfG ChrisB

          --
          „This is the author's opinion, not necessarily that of Starbucks.“
          1. Das hat mit window nur in so fern zu tun, dass Variablen im globalen Gueltigkeitsbereich in den JavaScript-Implementierungen der Browser als Eigenschaften des window-Objektes hinterlegt werden.
            Das gilt aber generell fuer jede andere Objekteigenschaft genauso.

            Danke, das hat mir sehr weiter geholfen! :)

        2. Hi,

          Ist window["la"+"la"] auch erlaubt?

          wie Chris gesagt hat...

          Alternativ kannst Du auch Objekte erzeugen:
          var varvar =  {
              lala : "hello worls",
              foo  : "am ende wird alles gut"
          }
          alert (varvar["la" + "la"]);

          Weiterhin kannst Du auch Strings mit eval() zu Variablen zusammensetzen. Allerdings ist eval etwas verpönt.

          Gruesse, Joachim

          --
          Am Ende wird alles gut.
  2. Ich habe mal gesehen, dass manchmal ein $( ... ) in Javascript verwendet wird um Variablennamen aus Strings zusammen zu bauen. Wie genau wendet man das an?

    Also $ ist eine Funktion in verschiedenen JavaScript-Frameworks, mit der man Elemente im Dokument anspricht. Z.B. über ihre ID oder über einen CSS-artigen Selektor.

    Was hat das jetzt mit dem Zusammenbauen von Variablennamen zu tun?
    Siehe auch https://forum.selfhtml.org/?t=182413&m=1209032.

    Mathias

    1. Hi,

      Siehe auch https://forum.selfhtml.org/?t=182413&m=1209032.

      gibt es eigentlich, analog zu window["myvarname"], eine Möglichkeit auf eine lokale Variable innerhalb einer Funktion zuzugreifen (Abgesehen davon natürlich, dass man sich dazu ein Objekt anlegen kann...)?

      Gruesse, Joachim

      --
      Am Ende wird alles gut.
      1. gibt es eigentlich, analog zu window["myvarname"], eine Möglichkeit auf eine lokale Variable innerhalb einer Funktion zuzugreifen

        Lokale Funktionsvariablen hängen am internen Variable Object, das man nicht zu fassen bekommt. Also wäre nur eval möglich, weil das Variable Object in der Scope Chain liegt.

        Mathias

        1. Hi,

          Lokale Funktionsvariablen hängen am internen Variable Object, das man nicht zu fassen bekommt.

          hab gestern schon fast an mir gezweifel...

          Danke & Gruesse, Joachim

          --
          Am Ende wird alles gut.