donp: String.length nicht iterable

Beitrag lesen

Hallo Mathias,

Natürlich ist length immer iterable, aber nur bei String-Objects, weil bei String-Primitives gar nix iterable ist.

Zuerst habe ich das einfach geglaubt, aber hartnäckig wie ich bin, dann doch noch einmal überprüft, und siehe: Obige Aussage ist anscheinend völlig falsch, Beweis:

  
var myString = new String('abc');  
for (var prop in myString) {  
 alert( 'property ' +  prop + ' (Constructor)' );  
}  
//=> Beim "richtigen" Objekt kann man über fast alle Eigenschaften iterieren, aber "length" ist nicht dabei.  
  
myString = 'abc';  
for (prop in myString) {  
 alert( 'property ' +  prop + ' (Primitive)' );  
}  
//=> Beim Primitivling gilt dasselbe.  

Sag bloß, die for-Schleife bewirkt ebenfalls eine temporäre Umwandlung des Primitives in ein Objekt? Dann bleibt zumindest noch der erste Teil deiner Aussage falsch, da die length-Eigenschaft bewiesermaßen doch nicht iterable ist.

Gruß, Don P