Hi LanX!
object.prototype aber ist höchstumstritten, da gibt es zwei sich krass gegenüberstehende Schulen, und er geht in dem Artikel überhaupt nicht auf die Problematik ein. Mein Verbesserungsvorschlag war zwar @%$&*... , aber sein Artikel ist dahingehend trotzdem Erklärungsbedürftig.
ganz deiner Meinung, schau mal hier https://forum.selfhtml.org/?t=169127&m=1104127
Wenn man das konsequent weiterdenkt müsste es auch Filterfunktionen wie own(), ownAttr(), inAttr(), ...usw oder analog vererbte Iteratoren (für Whileschleifen) geben.
for (i in ownAttr(obj) {...}
while (i in obj.ownAttr()) {...}
>
> und so weiter ...
hmm , mit dem for (i in ownAttr(obj) fällst du aber IMHO leider wieder auf die Schnau ... ähm du drehst dich im Kreis :)
Du kannst hier nur ein Objekt zurückgeben, dass von Object() erbt ... BUMM.
for in ohne hasOwnAttribute geht halt nicht.
die Idee mit dem Iterator ist aber machbar, AFAIS hat prototype.js genau so seinen Konstruktor Hash realisiert: <http://prototypejs.org/api/hash#method-each>
Die hatten scheints auch selbst ziemliche Probleme mit Hash (siehe deprecated Hinweise) udn bieten Alternativ noch die Möglichkeit sich Arrays() der values udn keys zurückgeben zu lassen.
for-in ohne Vererbung geht halt leider nicht!
Grüße
Kurt