![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
ich habe in der letzen Zeit schon einiges über Vererbung bzw. Prototyping in JavaScript gelesen und auch probiert. Jedoch fehlt mir an der ein oder anderen Stelle noch eine Bestätigung bzw. ganz und gar Wissen. |
#3
| |||
| |||
|
|
alsc0001 wrote: ich habe in der letzen Zeit schon einiges über Vererbung bzw. Prototyping in JavaScript gelesen und auch probiert. Jedoch fehlt mir an der ein oder anderen Stelle noch eine Bestätigung bzw. ganz und gar Wissen. Hast du dir prototype.js dabei auch angeschaut? Unbedingt empfehlenswert: http://prototype.conio.net/ Michael -- Michael Schuerig The Fifth Rider of the Apocalypse mailto:michael (AT) schuerig (DOT) de is a programmer. http://www.schuerig.de/michael/ |
#4
| |||
| |||
|
|
Michael Schuerig schrieb: Hast du dir prototype.js dabei auch angeschaut? Unbedingt empfehlenswert: http://prototype.conio.net/ Wirklich interessante Geschichte. Wenn ich das richtig verstehe pflegen die Leute eine Liste von prototype Eigenschaften. Damit erweitern sie den Funktionsumfang eines Objekts. Weiss nicht... würde sagen das schießt an meiner Intension, dem Aufbau von Vererbungsstrukturen, vorbei. |
#5
| |||
| |||
|
|
alsc0001 wrote: ich habe in der letzen Zeit schon einiges über Vererbung bzw. Prototyping in JavaScript gelesen und auch probiert. Jedoch fehlt mir an der ein oder anderen Stelle noch eine Bestätigung bzw. ganz und gar Wissen. Hast du dir prototype.js dabei auch angeschaut? Unbedingt empfehlenswert: http://prototype.conio.net/ |
#6
| |||
| |||
|
|
Michael Schuerig wrote: alsc0001 wrote: ich habe in der letzen Zeit schon einiges über Vererbung bzw. Prototyping in JavaScript gelesen und auch probiert. Jedoch fehlt mir an der ein oder anderen Stelle noch eine Bestätigung bzw. ganz und gar Wissen. Hast du dir prototype.js dabei auch angeschaut? Unbedingt empfehlenswert: http://prototype.conio.net/ Nein. |
#7
| |||
| |||
|
|
Thomas 'PointedEars' Lahn wrote: Michael Schuerig wrote: alsc0001 wrote: ich habe in der letzen Zeit schon einiges über Vererbung bzw. Prototyping in JavaScript gelesen und auch probiert. Jedoch fehlt mir an der ein oder anderen Stelle noch eine Bestätigung bzw. ganz und gar Wissen. Hast du dir prototype.js dabei auch angeschaut? Unbedingt empfehlenswert: http://prototype.conio.net/ Nein. Ach, Thomas, schön das du wieder da bist. Mit bekannt kernigen Beiträgen. Prototype.js demonstriert ein Stil, mit dem vergleichsweise einfach auf der Basis von Prototypen objektorientiert programmiert werden kann. Der Namespace wird nicht unnötig verschmutzt. Die Implementierung macht guten Gebrauch von Abstraktion. Die Funktionalität ist vielfältig nutzbar. |
|
Jetzt bist du dran: Was ist schlecht? |
#8
| |||
| |||
|
|
Michael Schuerig wrote: Thomas 'PointedEars' Lahn wrote: Michael Schuerig wrote: alsc0001 wrote: ich habe in der letzen Zeit schon einiges über Vererbung bzw. Prototyping in JavaScript gelesen und auch probiert. Jedoch fehlt mir an der ein oder anderen Stelle noch eine Bestätigung bzw. ganz und gar Wissen. Hast du dir prototype.js dabei auch angeschaut? Unbedingt empfehlenswert: http://prototype.conio.net/ Nein. Ach, Thomas, schön das du wieder da bist. Mit bekannt kernigen Beiträgen. Prototype.js demonstriert ein Stil, mit dem vergleichsweise einfach auf der Basis von Prototypen objektorientiert programmiert werden kann. Der Namespace wird nicht unnötig verschmutzt. Die Implementierung macht guten Gebrauch von Abstraktion. Die Funktionalität ist vielfältig nutzbar. Wenigstens hast Du eine blühende Phantasie. Jetzt bist du dran: Was ist schlecht? Das habe ich schonmal geschrieben. Neue Argumente Deinerseits wären daher hilfreich. |
#9
| |||||
| |||||
|
|
Thomas 'PointedEars' Lahn wrote: [prototype.js ist nicht empfehlenswert] Wenn du so sicher bist, dass du in dieser Newsgroup schon etwas dazu geschrieben hast, dann wäre ein Verweis auf den Beitrag angebracht. |
|
Ich habe gesehen, dass du in comp.lang.javascript |
|
ein wenig über theoretische Mängel von prototype.js geschimpft hast. Das sagt allerdings nichts über den Nutzen dieser Bibliothek aus. |
|
[...] An keiner Stelle habe ich von dir etwas dazu gefunden, was die von mir genannten Argumente konterkariert. |
|
Elf M. Sternberg schrieb: Einer der Mängel von prototype.js (google danach, wenn Du es nicht kennst) ist, dass es schlecht dokumentiert ist. Es ist nicht nur schlecht dokumentiert, sondern beruht mit ziemlicher Sicherheit auf einem (verbreiteten?) Missverständnis. Was soll eine "objektorientierte Javascript-Bibliothek" sein? J(ava)Script/ECMAScript *sind* objektorientierte Programmiersprachen; dass JavaScript < 2.0 (v2.0 ist nur in der Epimetheus-Testimplementation verfügbar), JScript < 7.0 (v7.0 nur im .NET-Framework) und ECMAScript < 4 (Ed. 4 ist noch immer nur ein Vorschlag von Netscape) lediglich für prototypbasierte Vererbung bereitstellen, mindert weder ihren Status noch den von anderen OOP-Sprachen, die dasselbe Objektmodell verwenden. Obwohl das Emulieren von klassenbasierter Vererbung in einer prototypbasierten Sprache interessant sein kann, ist der Ansatz, der hier benutzt wird, (jedenfalls für mich) eher zweifelhaft. Statt ordentliche Funktionsdeklarationen für Konstruktoren zu benutzen, wird dort ein Objekt über einen zuvor erstellten und später veränderten Prototyp mittels Class.create() erzeugt, der wiederum eine `initialize'-Eigenschaft erfordert, welche den Aufruf von Function.prototype.apply() erfordert. Ich kann dabei keinen Sinn und Zweck ausser Verschleierung von Code oder sonst einen Vorteil darin sehen (wenn man Verschleierung überhaupt einen Vorteil nennen kann); im Vergleich zum Aufruf einer Konstruktorfunktion mit dem Schlüsselwort `new' (welche die Initialisierung durchführen kann) reduziert es die Effizienz des Codes und erhöht seinen Speicherbedarf [des Programms; Anm. d. Übers.]. |

#10
| ||||||
| ||||||
|
|
Michael Schuerig wrote: Ich habe gesehen, dass du in comp.lang.javascript eben da. ein wenig über theoretische Mängel von prototype.js geschimpft hast. Das sagt allerdings nichts über den Nutzen dieser Bibliothek aus. Ach, Du möchtest mangelhafte Scripts benutzen und weiterempfehlen? |
|
| Es ist nicht nur schlecht dokumentiert, sondern beruht mit | ziemlicher | Sicherheit auf einem (verbreiteten?) Missverständnis. Was soll eine | "objektorientierte Javascript-Bibliothek" sein? | J(ava)Script/ECMAScript *sind* objektorientierte | Programmiersprachen; dass JavaScript < 2.0 (v2.0 ist nur in der | Epimetheus-Testimplementation verfügbar), JScript < 7.0 (v7.0 nur im | .NET-Framework) und ECMAScript < 4 (Ed. 4 ist noch immer nur ein | Vorschlag von Netscape) lediglich für prototypbasierte Vererbung | bereitstellen, mindert weder ihren Status noch den von anderen | OOP-Sprachen, die dasselbe Objektmodell verwenden. | | Obwohl das Emulieren von klassenbasierter Vererbung in einer | prototypbasierten Sprache interessant sein kann, ist der Ansatz, | der hier benutzt wird, (jedenfalls für mich) eher zweifelhaft. |
|
| Statt ordentliche Funktionsdeklarationen für Konstruktoren zu | benutzen, wird dort ein Objekt über einen zuvor erstellten und | später veränderten Prototyp mittels Class.create() erzeugt, der | wiederum eine `initialize'-Eigenschaft erfordert, welche den | Aufruf von Function.prototype.apply() erfordert. Ich kann dabei | keinen Sinn und Zweck ausser Verschleierung von Code oder sonst | einen Vorteil darin sehen (wenn man Verschleierung überhaupt | einen Vorteil nennen kann); |
|
| im Vergleich zum Aufruf einer | Konstruktorfunktion mit dem Schlüsselwort `new' (welche die | Initialisierung durchführen kann) reduziert es die Effizienz | des Codes und erhöht seinen Speicherbedarf [des Programms; | Anm. d. Übers.]. |
|
Du solltest lernen, zwischen "Schimpfen" und fachlicher Kritik zu unterscheiden. In dem Zusammenhang wäre es vielleicht ratsam, wenn Du meine Artikel wenigstens gelegentlich zuende lesen würdest. |
|
Einen deutlich besseren Ansatz für die Emulation klassenbasierter Vererbung in JS findet man übrigens hier: |
![]() |
| Thread Tools | |
| Display Modes | |
| |