Hinweis: Einige Eigenschaften des Objekts sind auf die gleiche Weise als schreibgeschützt, permanent (nicht löschbar) oder nicht aufzählbar markiert. Diese Eigenschaften können nicht mithilfe von for/in-Schleifen aufgezählt werden. Obwohl alle benutzerdefinierten Eigenschaften aufzählbar sind, sind viele interne Eigenschaften, einschließlich aller internen Methoden, nicht aufzählbar. Darüber hinaus können Objekte Eigenschaften von anderen Objekten erben, und diese geerbten benutzerdefinierten Eigenschaften können mithilfe einer for/in-Schleife aufgezählt werden.
Eine Verwendung wiefor(var i=0;i Zum Beispiel: Ob ein Objekt vollständig erfasst werden kann, kann anhand des Attributs propertyIsEnumerable beurteilt werden. Die Beschreibung lautet wie folgt: Ob object.propertyIsEnumerable(propname) die Eigenschaft durch die for/in-Schleife sehen kann Beschreibung: Sie können die for/in-Anweisung verwenden, um die „aufzählbaren“ Eigenschaften eines Objekts zu durchlaufen, aber nicht alle Eigenschaften eines Objekts sind aufzählbar. Eigenschaften, die dem Objekt durch JavaScript-Code hinzugefügt werden, sind aufzählbar, und interne vordefinierte Eigenschaften von Objekten ( wie Methoden) sind normalerweise nicht aufzählbar. Die Methode propertyIsEnumerable() überprüft nicht die Prototypenkette, was bedeutet, dass sie nur auf lokale Eigenschaften des Objekts angewendet wird und die Aufzählbarkeit geerbter Eigenschaften nicht erkennen kann
var a = ["a", "b", "c"];
for(var el in a){
alarm(a[el]);
}
Dies dient dazu, alle Elemente in a aufzuzählen. Natürlich kann das obige Beispiel verwendet werden
for(var i=0,len=a.length;i
}
Diese Methode wird zum Auflisten in einer Schleife verwendet, aber manchmal funktioniert diese Methode möglicherweise nicht.
Zum Beispiel:
var a = {"first":1,"second":2,"third":3};
Derzeit können Sie nur for in verwenden, um die Liste zu erschöpfen.
propname ist eine Zeichenfolge, die den Namen des Objektattributs
enthält
Wenn das Objekt über eine nicht geerbte Eigenschaft namens propname verfügt und die Eigenschaft aufzählbar ist (d. h. sie kann mithilfe einer for/in-Schleife aufgezählt werden), wird true
var o=new Object();
o.x=3,14;
o.propertyIsEnumerable("x");//true
o.propertyIsEnumerable("y");//false hat nicht die Eigenschaft
o.propertyIsEnumerable("toString");//false inherited
Object.prototype.propertyIsEnumerable("toString");//false nonenumable