Wir haben vor kurzem eine Web-App mit Prototype erstellt, die die Funktionalität von Class.Create() in erheblichem Umfang nutzt. Im Moment erwägen wir, zu jQuery zu migrieren, da es als eine "bessere" Bibliothek angesehen wird. Ich habe ein wenig über das Thema gelesen und herausgefunden, dass jQuery keine direkte integrierte Unterstützung für die Klassenerstellung wie Prototyp hat. Natürlich gibt es immer noch die .prototype und die jQuery.extend (wie in https://stackoverflow.com/questions/79477/how-to-create-an-object-oriented-class-in-jquery erwähnt), aber nach etwas mehr suchen, habe ich das Gefühl, dass jQuery wirklich nicht auf diese Weise Skript ‚will‘ ...Warum scheint jQuery die Verwendung von regulärem OOP zu verhindern?
Die gleiche Seite hat eine Erwähnung von John Resigs Classy-Plugin, das für mich großartig aussah. Auf der Seite steht jedoch, dass es sich tatsächlich um einen Aprilscherz handelte und dass Resig tatsächlich rät, den Code nicht zu verwenden. Ich bin gerne bereit, aber ich würde gerne verstehen, was der Grund für all das ist, und, natürlich, was es ist, dass sie wollen, dass Sie stattdessen tun. Kann mich jemand aufklären?
-edit-
Dank für die interessanten Antworten. Aus Gründen der Klarheit: Bedeutet dies, dass es gut ist, die Klassen, die ich in Prototype geschrieben habe, in die jQuery-Methode umzuformen, um eine Klasse zu "formen" und sie immer noch in der gleichen "Art und Weise" wie zuvor zu verwenden? Oder wird das immer noch als schlechte Praxis angesehen, und sollte ich einen anderen Ansatz verwenden?
Zu Ihrer Information JavaScript ist keine klassenbasierte Sprache. Es ist eine prototypische Sprache. – rahul
... und als solche mehr Lisp als C: http://javascript.crockford.com/javascript.html – Boldewyn
(Von jemandem, der vier Jahre Vorsprung hat, um den Unterschied zu sehen) Auch wenn dies [Artikel] (http://jqueryvsmootools.com/) ist über Mootools vs JQuery, die Begründung hinter Mootools gilt im Wesentlichen für PrototypeJS. Der Abschnitt [motto] (http://jqueryvsmootools.com/#mottos) sagt alles. TL; DR; JQuery ist für die DOM-Manipulation konzipiert, während Mootool (und Prototype) mit DOM ** und ** zusätzlichen Dienstprogrammen wie der Klassenbasis-OOP für die Prototyp-Basissprache usw. entworfen wurde. – OnesimusUnbound