gruss Daniel,
eben, das ist durchaus der ansatz fuer schlankeren
Nö; Die Prototype-Variante ist - abgesehen von den IE-Würgarounds ...
davon laesst sich nicht absehen, denn darum geht es, um *genau einen*
*einheitlichen* code.
... auch nicht viel umfangreicher:
HTMLElement.prototype.getElementsByClassName = function(klasse){
var alles = this.getElementsByTagName("*");
…
}
das hat ja auch niemand in abrede gestellt. ich selbst habe seit jahren
erweiterungen in meiner code-ramschkiste, die auf prototypischen
erweiterungen von DOM elementen und/oder dem einsatz von \_\_getter\_\_,
\_\_setter\_\_ beruhen (z.b. fuer listen, collections, dictionaries ...).
die realitaet sieht aber anders aus, und nicht nur der msie unterstuetzt
diese features - denn das sind sie nunmal - nicht. kein browserhersteller
ist verpflichtet, die elemente des DOM wie native, durch den standard
ECMA-262, festgelegte JavaScript-objekte zu implementieren.
nachdem ich das endlich akzeptiert hatte, habe ich nach anderen
loesungen und loesungsansaetzen gesucht.
> > ... uebersichlicheren code
>
> Da muss ich dir widersprechen.
>
> `document.getElementById("foo").getElementsByClassName("bar")[0];`{:.language-javascript}
>
> ist IMHO um einiges übersichtlicher als
>
> `getElementsByClassName("bar",document.getElementById("foo"))[0];`{:.language-javascript}
>
> …weil es die richtige Reihenfolge der Referenzierung wiedergibt.
volle zustimmung - ich arbeite auch lieber mit dem punkt-operator.
> Das Mag bei diesem Beispiel noch nicht so stark in's Gewicht fallen,
> aber wenn die Schachtelungen immer tiefer werden, blickt man
> irgendwann nicht mehr durch.
richtig, aber das trifft auch auf den von Dir beschriebene idealfall
zu, wo es ebenfalls oft angebracht ist, solch langen referenzen
voruebergehend einer lokalen variablen aufzubuerden.
im uebrigen schaffen die grossen bibliotheken das von Dir kritisierte
stilistische merkmal ebenfalls nicht aus der welt; und einige nur dann,
solange man nicht den jeweils spezifischen namensraum verlaesst bzw.
die dort drinnen geltenden konventionen (und es sind immer andere)
bricht.
und genau aus diesen gruenden, und weil Felix' werkzeug \*nur\* ein
ordentlicher schraubendreher und kein profiwerkzeugkoffer sein wollte,
ist der von ihm eingeschlagene weg der fuer ihn direkt ins ziel fuehrende.
so long - peterS. - pseliger@gmx.net
--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]