Alle Eigenschaften eines Objektes finden
Seit Version 1.0 stellt JavaScript dafür folgende Kontrollstruktur zu Verfügung:
for( property in myObject ) { //tuwas }
Dabei kann man sich zu Nutze machen, dass die Eigenschaften eines Objektes nicht nur über den Punktoperator gefunden werden können, sondern auch durch Einschließen der Eigenschaft in eckige Klammern: myObject["property"]. Wichtig ist in diesem Zusammenhang zu Wissen, dass vom Host zur Verfügung gestellte Objekte für bestimmte Attribute das Flag DontEnum gesetzt haben, z.B. die length Eigenschaft eines Array. Dadurch tauchen diese Eigenschaften in der Auflistung nicht auf.
Kombinieren wir nun dieses Wissen zu folgendem Konstrukt:
var strOut = "Eigenschaften von myObject:"; for( property in myObject ) { strOut += property + " = " + myObject[property]; } document.write(strOut);
Wenn Sie nun das Skript in eine Funktion schreiben und den String strOut als Rückgabewert definieren, haben Sie eine flexible Art, Eigenschaften von Objekten zu finden. Falls Sie sich zum Beispiel für die Eigenschaften des Objektes window.navigator interessieren, brauchen Sie dieses Objekt lediglich der Funktion übergeben. Die folgende Funktion gibt alle Paare in einem Array zurück. Damit ist man etwas flexibler in der Ausgabe, da der Umbruch selbst bestimmt werden kann.
function objProperties(myObject){ var out = new Array(); for( property in myObject ) { out.push(property + " = " + myObject[property]); } return out; } var erg = objProperties(window.navigator); document.write("Eigenschaften für window.navigator:\n\n" + erg.join("\n"));
Das Ergebnis sieht in Ihrem Browser so aus:
Für eine etwas dynamischere und vor allem navigierbare Auflistung der Objekte und deren Eigenschaften eines Browsers habe ich schon seit längerem eine eigene Seite zur Verfügung gestellt.