Hej Lasse,
Det var en meget fornem gennemgang. Mange tak for den
Glædelig jul forresten.
Mvh Snuske
"Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
news:znrik72i.fsf@hotpop.com...
> "Snuske" <mupetcom@worldonline.dk> writes:
>
> > Nuvel, men kan du forklarer mig hvorfor jeg ikke kan bruge min
> > for...in?
>
> Måske :)
>
> > Den virker i IE og det burde den også gøre i NS.
>
> Hvorfor det? Der er tre muligheder:
> 1) IE følger blot standarden, og NS har en fejl.
> 2) IE gør noget ud over standarden, og NS gør det ikke.
> 3) IE er i strid med standarden.
>
> Ad 1: Ja, så bør NS selvfølgelig rette deres fejl.
>
> Ad 2: Hvis IE gør noget ud over hvad der er krævet af DOM-standarden,
> så er andre ikke forpligtigede til også at gøre det (og med Microsofts
> historiske brug af "Embrace and extend"-strategien vil jeg næsten
> anbefale *ikke* at efterligne deres unoder).
>
> Ad 3: Så skal man selvfølgelig ikke følge trop.
>
> > Og det er også helt legalt at bruge for...in til at crawl et
> > almindeligt array. Suk :-/
>
> Men en NodeList er ikke et Array. Nodelist er et Objekt der har to
> egenskaber: et felt ("length") og en metode ("item"), og kald til
> metoden, med heltallige argumenter, må også gerne skrives med samme
> notation som array-opslag.
>
> D.v.s., det eneste du garanteret kan gøre med et objekt, O, af type
> NodeList er
> O.length
> O.item(0) ... O.item(O.length-1)
> (eller ækvivialent: O[0] ... O[O.length-1] )
>
> Man kan også altid tilgå egenskaber ved navn, fx O["length"] og
> O["item"](2).
>
> Et Array, A, med længde 4 har bl.a. egenskaberne 0, 1, 2 og 3, så man
> kan skrive A[0] ... A[4].
>
> For-in-konstruktionen gennemløber egenskaberne (undtagen dem der er
> sat til DontEnum (og det er "length" vist for både NodeList og Array,
> sammen med mange andre egenskaber ved Arrays)), så derfor er den
> eneste egenskab du får ud af en Nodelist "item", mens du for et array
> får 1, 2, 3 og 4.
>
> IE har åbenbart valgt at tilføje tallene som egenskaber til NodeList,
> men det er ikke et krav. Jeg ved ikke om det er en direkte fejl (men
> det opfordrer jo i det mindste folk til at bruge featuren, og *det* er
> en fejl).
>
> (information on NodeList taget fra
> <ULR:
http://www.w3.org/TR/DOM-Level-2-Core/ecma-script-binding.html>
> og for-in konstruktionen er beskrevet i afsnit 12.6.4 af
> <URL:ftp://ftp.ecma.ch/ecma-st/Ecma-262.pdf>
> )
>
> /L
> --
> Lasse Reichstein Nielsen - lrn@hotpop.com
> 'Faith without judgement merely degrades the spirit divine.'