NAS

JavaScript Dictionary-Zuweisung

Augen1337

Captain Pro
🎅Rätsel-Elite ’24
Registriert
Apr. 2008
Beiträge
3.978
Hallihallo,

ich habe eine Anwendung in Javascript geschrieben, nun versuche ich diese auf dem IE8 (!) zum laufen zu kriegen. IE8 ist fix - die Anwendung soll dort supported sein. :( Also bitte keine Posts "benutz doch [Browser einfügen]....". Danke ;)

Vielleicht sind ja ein paar alte Hasen dabei, die wissen, wie man diese "alten" Probleme umgeht.
Es geht um die Zuweisung eines Dictionarys:


Code:
// Funktion, die ein Dictionary zurückgibt
get_target = function(){
    ......
    return {
        pane: target_pane,
        options: target_options
    };
}

...

//Zuweisung (hier passiert der Fehler laut Debugging)
init_pane_options = get_target();

Der Fehler laut IE Developer Tools (:rolleyes:) "Object doesn't support this property or method".
Kennt das jemand? War früher die Zuweisung von Dictionarys verboten? Gabs da nen einfachen Walkaround?



...hier mal in ganz simpel (hab in der Konsole bisschen probiert)
Code:
a={
   eins:"one",
   zwei:"two"
}; 
b=a; //Fehler!


...und der Fehler besteht bei Listen (in JS ist das ja das gleiche)
Code:
a={
   "one",
   "two"
}; 
b=a; //Fehler!
 
Zuletzt bearbeitet:
Ich benutze diese JSON Syntax nicht, meine aber, Du müßtest:

var a=...

und

var b=a;

machen
 
ehrlich gesagt habe ich bisher kein var davor gemacht und es hatte geklappt. Naja ich probiers mal morgen aus an dem anderen Rechner. Danke

Und welche Syntax benutzt du dafür?
 
Ich bin weit davon entfernt, ein JavaScript Fachmann zu sein, habe gerade mal ein kleines Firefox Addon geschrieben.

Wenn Du kein var verwendest, dann wird nach einer früheren Definition im Scope für deine Variable gesucht. Wenn nicht vorhanden, wird es dem Hauptobject (im Browser glaube ich window) hinzugefügt.

Tja, und dann gibt es noch den strict Mode. Wenn der an ist, mußt Du var verwenden.


zu Deiner Frage:
Du verwendest ja Objektliterale.

Die Alternative wäre:
Code:
var a=new object();
a.eins="one";
a.zwei="two";

var b=a;
 
Zurück
Oben