In einem Artikel auf yuiblog sagt Douglas Crockford, dass die% co_de Die% -Anweisung wird über die Methoden eines Objekts iterieren. Warum produziert der folgende Code ["a", "b", "c", "d", "toString"] nicht? Sind nicht .toString () und andere Methoden Mitglieder von my_obj?
%Vor% Alle benutzerdefinierten Eigenschaften sind aufzählbar, einschließlich der vom Prototyp geerbten Eigenschaften. Die integrierten nativen Eigenschaften sind nicht. toString()
ist einer von ihnen. Siehe hier Ссылка
Bearbeiten : Meine Interpretation von "Die Schleife wird jedoch über alle benutzerdefinierten Eigenschaften (einschließlich aller, die die integrierten Eigenschaften überschreiben) iteriert" ist dies die Eigenschaft die direkt im Objekt überschrieben werden, werden aufzählbar. Nicht das Überschreiben im Prototyp selbst. Das heißt:
%Vor% for..in
iteriert über benutzerdefinierte Eigenschaften. Wenn Sie Ihren Code in:
Dann
%Vor%Wird ausgegeben:
%Vor% Chetan Sastry zeigte zugespitzt aus,toString
wird anders behandelt, da es sich um eine integrierte native Eigenschaft handelt.
Tags und Links javascript for-in-loop