Da immer mal wieder der OO-Aspekt von JavaScript ignoriert wird, hier mal ein Text über Object Hierarchy and Inheritance in JavaScript.
Ich selbst bin seit meinen ersten Kontakten mit Prototyp-OO-Sprachen wie Self und NewtonScript ein Fan dieser Denkrichtung von OO - das Schubladendenken der klassenbasierten OO Ansätze ist oft einengend, gerade bei der Modellierung von Realwelt-Objekten.
Übrigens hat JavaScript auch noch eine ganze Menge anderer netter Eigenschaften die gerne übersehen werden - allen voran die netten anonymen Funktionen, über die Closures in JavaScript realisiert werden. Und higher-order programming lässt sich damit auch realisieren.
Wenn man jetzt Prototype-OO und Higher-Order-Programming zusammenpackt, kommt unter Umständen sowas wie Prototype heraus - einer Bibliothek für JavaScript mit einer Menge interessanter Erweiterungen wie z.B. eleganter Ajax-Bindings, einfacherer Callback-Konstruktion und noch vielen anderen Spielereien. Eine weitere Möglichkeit könnte sich aus Bob Ippollitos MochiKit ergeben, wenn es denn mal veröffentlicht ist (und es dem Hype standhält).
Prototype erfordert übrigens eine Menge an Vorstellungskraft was damit gemacht werden kann - es gibt nämlich keine Dokumentation