• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

falsches objekt wird verändert

omoxen

Blogger
hallo, ich habe ein großes objekt bso, dass u.a. die objekte vars und functions enthält.

Code:
alert(bso.functions.json(bso.vars.winObjects.normal));
            for    (i in obj)    {
                for    (j in bso.vars.shortcuts)    {
                    if    (i == j)    {
                        eval("obj." + bso.vars.shortcuts[j] + " = obj[i]");
                        delete obj[i];
                    }
                }
            }
            alert(bso.functions.json(bso.vars.winObjects.normal));

hier sieht man die Funktion bso.functions.createElement. Gibt in der Schleife werden Die Namen der Unterobjekte verändert. In bso.vars.shortcuts stehen alle diese shortcuts und deren längere Entsprechungen. Das objekt obj wurde am Anfang der Funktion übergeben.
Die alerts am anfang und am ende des codes geben nun ein völlig anderes objekt aus, das dazu eigentlich unabhängig ist, nämlich bso.vars.winObjects.normal, außer dass es gleich obj ist. Auf jeden Fall benutzt bso.vars.winObjects.normal auch diese shortcuts. Anstatt aber die shortcuts aus obj zu verändern, werden die shortcuts von bso.vars.winObjects.normal verändert. Hat Firefox damit ein Referenzierungsproblem(und Safari)? Oder hab ich irgendeinen Fehler gemacht?

mfg omoxen
 
Werbung:
Hat Firefox damit ein Referenzierungsproblem(und Safari)? Oder hab ich irgendeinen Fehler gemacht?
das zweite. eval dürfte hier völlig untauglich sein, da es im Kontext von window läuft. Mir ist aber nicht ganz klar was das Konstrukt bewirken soll.
 
Zurück
Oben