• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Probleme mit for in

Hasso

New member
Liebe JavaScript-Experten,

ich verzweifele gerade en einem Script, das mir die Eigenschaften der Objekte anzeigen soll.
Folgendes funktioniert problemlos:
Code:
    var Eigenschaft;
    for (Eigenschaft in window)
    {
    document.write(Eigenschaft);
    document.write("<br />");
    }
Da ich das Ganze aber flexibel haben möchte, dachte ich mir, den Namen des Objekts mit prompt vorher abzufragen.

Setze ich aber im for in eine Variable ein, funktioniert's nicht mehr:
Code:
    var obj = "window";
    var Eigenschaft;
    for (Eigenschaft in obj)
    {
    document.write(Eigenschaft);
    document.write("<br />");
    }
Wäre schön, wenn mir jemand helfen könnte.
 
1. document.write() ist nicht dein Freund - hat unangenehme Nebenwirkungen und ist nicht besonders flexibel einsetzbar. Mach' dich lieber gleich mit .innerHTML oder den DOM-Methoden zur Erzeugung und Einbindung von Elementen vertraut. Du musst es sowieso irgendwann machen.
2. in der Variablen obj ist jetzt einfach ein String gespeichert und du iterierst über dessen Eigenschaften. Du kannst über Schema 4 und den Kontainer für globale Variablen (window) dein Vorhaben realisieren:
Code:
for (var eigenschaft in window[obj]){
	...
}
3. Aber für solchen Inspektionssachen gibt es eigentlich in den modernen Browsern schon existierende Tools...
4. In Produktivcode sollte man den Körper einer for...in Schleife immer mit einer Abfrage an .hasOwnProperty() absichern. Ansonsten bekommt man gerne mal einige ungewollte Einträge mit.

PS: in JS gibt es Fälle, in denen man eine öffnende geschweifte Klammer nicht in eine neue Zeile schreiben darf. Deswegen würde ich mir an deiner Stelle gleich abgewöhnen für die eine neue Zeile zu machen. Dann ist dein Codestil immer konsistent.
PS: deine Namenskonvention ist inkonsistent.
 
Zurück
Oben