Christian Tank: Name einer Variable auslesen

Hallo, ich habe eine (dynamisch per php erstellte) Javascript-Variable mit dem dynamischen Namen "Datum"

var datum

Ich möchte gerne den Namen (nicht den Wert) der Variable (="datum") per JS auslesen und in einer anderen anderen Variable als Wert speichern. Funktioniert das?

Danke Christian

  1. Tach!

    ich habe eine (dynamisch per php erstellte) Javascript-Variable mit dem dynamischen Namen "Datum"

    var datum

    Ich möchte gerne den Namen (nicht den Wert) der Variable (="datum") per JS auslesen und in einer anderen anderen Variable als Wert speichern. Funktioniert das?

    Dazu muss der Name als String vorliegen. Oder wie willst du erkennen, welche der im Scope vorhandenen Variablen diejenige ist, die dich interessiert? Wenn PHP den Code erstellt (was generell keine besonders gute Idee ist), kann man da auch gleich noch den Code für eine weitere Variable mit festem Namen und dem Namen der anderen Variable als Inhalt erzeugen.

    Vielleicht gibt es auch andere Wege, beispielsweise über Quelltextanalyse oder ähnliches, aber es gibt sicher auch Wege, um das Problem von vornherein zu umgehen, indem man eine andere Herangehensweise wählt. Für Empfehlungen zu Alternativen müsste man aber die eigentliche Aufgabenstellung kennen.

    dedlfix.

  2. Hallo!

    Ich möchte gerne den Namen (nicht den Wert) der Variable (="datum") per JS auslesen und in einer anderen anderen Variable als Wert speichern. Funktioniert das?

    Das geht so nicht. Wie willst du ein "Ding" ansprechen wenn du dessen Namen nicht kennst? ;)

    Die einzige Möglichkeit wäre in einer Liste zu suchen, in der alle "Dinge" verzeichnet sind. Nur wie findest du darin das was du suchst, wenn du dessen Namen nicht kennst?

    Erklär mal bitte was du vorhast. Bin mir sicher da gibts eine einfachere Lösung.

    In Javascript / JSON kannst du zum Beispiel ein Objekt verwenden ...

    var objekt = {
      datum: "wert"
    };
    

    Der Variablenname "objekt" ist feststehend. Irgendetwas "festes" brauchst du. ;) Du kannst dir die Eigenschaften / Werte eines Objektes ansehen ...

    for (var eigenschaft in objekt) {
      console.log( eigenschaft, objekt[eigenschaft] );
    }
    

    Und dir auch alle Eigenschaften holen https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys.

    Linus