GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing wiki.selfhtml.org — JavaScript/Tutorials/OOP – SELFHTML-Wiki JavaScript/Tutorials/OOP
Wechseln zu:
Navigation,
Suche
In diesem Tutorial lernen Sie den Umgang mit Objekten und einen Einstieg in die Objektorientierte Programmierung. Der Kurs baut auf den beiden Tutorials Einstieg in JavaScript und JavaScript und das DOM auf.
EinstiegIn JavaScript gibt es 7 Datentypen. Sechs von ihnen werden als “primitive” Datentypen bezeichnet, da sie nur einfache Werte speichern können. Im Gegensatz dazu dienen Objekte der Speicherung von Schlüssel-Wert-Paaren komplexerer Daten, sie sind also nicht mehr einfach, sondern aus anderen Werten zusammengesetzt. In JavaScript beherrschen Objekte fast jeden Aspekt der Sprache. Neben vielen vordefinierten Objekten (wie Date und Math) können Sie in JavaScript eigene Objekte erzeugen und deren Eigenschaften auslesen und Methoden aufrufen. Deshalb ist es wichtig, Objekte wirklich zu verstehen, bevor wir sie anwenden.[1] Konzepteprozedural vs objektorientiertIn der prozeduralen Programmierung wird ein Programm Zeile für Zeile abgearbeitet. Für wiederkehrende Prozeduren werden Prozeduren (in JS Funktionen genannt) aufgerufen und nach deren Beendigung wieder an die Ursprungsstelle zurückgesprungen. Das gesamte Programm wird dadurch strukturiert, indem man den Programmablauf von oben nach unten (Top-Down) in immer kleinere Teilbereiche gliedert. (Siehe: Programmieren – Vom Problem zum Plan) Problematisch wird es, wenn man die Datenstruktur ändert: Dann muss oft das gesamte Programm durchsucht und viele einzelne Anweisungen und Funktionen angepasst werden. Eine weitere Schwachstelle ist die fehlende Abgrenzung gegenüber weiteren Skripten, sodass globale Variablen sich gegenseitig beeinflussen könnten. Die objektorientierte Programmierung konzentriert sich im Unterschied zur prozeduralen zuerst auf die Grundstruktur der Daten und die Prozesse ihrer Verarbeitung.[2][3] Während der Entwurfsphase wird ein Modell dieser Strukturen aufgestellt.[4] Dieses Modell kann später flexibel angepassst werden. Beachten Sie, dass die prozedurale Programmierung und die OOP zwei Programmierparadigmen[5] sind, die sich nicht gegenseitig ausschließen, sondern ergänzen.
In JavaScript ist es oft so, dass Ihr eigentliches Script auf Funktionen aufgebaut ist und nicht auf Objekte. Aber fast alle Programmierschnittstellen, die Ihnen der Browser anbietet, basieren auf Objekten. Wenn Sie mit JavaScript programmieren möchten, müssen Sie deswegen wissen, wie Objekte in dieser Sprache funktionieren und wie man damit umgeht. Das Erstellen eigener Objekte folgt dann als nächster Schritt. Auf diese Weise entstehen hybride Programme, die Objekte nutzen, selbst aber eher prozedural sind. Ein kompletter Programmentwurf nach den Prinzipien der Objektorientierten Programmierung geht darüber aber noch einmal hinaus und ist weitaus komplexer. In unserem Wiki behandeln wir dieses Thema (noch) nicht. BegriffeIm Vergleich mit anderen Programmiermethoden verwendet die objektorientierte Programmierung neue, andere Begriffe.[6][7] Die einzelnen Bausteine, aus denen ein objektorientiertes Programm während seiner Abarbeitung besteht, werden als Objekte bezeichnet. Die Objekte werden dabei in der Regel auf Basis der folgenden Konzepte entwickelt:
Entwicklung der OOP in JavaScriptDamals, zur Zeit des ersten Browser-Kriegs, beauftragte Netscape Communications den Programmierer Brendan Eich, eine Programmiersprache entwerfen, die im Browser läuft. Im Gegensatz zu klassenbasierten Sprachen wie C++ und Java implementierte diese Sprache, die zunächst LiveScript genannt wurde, ein auf Prototypen basierendes Vererbungsmodell. Die prototypische OOP, die sich konzeptionell von den klassenbasierten Systemen unterscheidet, war nur wenige Jahre zuvor erfunden worden, um einige Probleme zu lösen, die die klassenbasierte OOP aufwarf, und sie passte sehr gut zur dynamischen Natur von LiveScript. Leider musste diese neue Sprache aus Marketinggründen „wie Java aussehen“. Java war die coole neue Sache in der technischen Welt, und die Führungskräfte von Netscape wollten ihre glänzende neue Sprache als „Javas kleinen Bruder“ vermarkten. Dies scheint der Grund zu sein, warum der Name in JavaScript geändert wurde. Das auf einem Prototyp basierende OOP-System sah jedoch keineswegs wie Javas Klassen aus. Um dieses prototypenbasierte System wie ein klassenbasiertes System aussehen zu lassen, entwickelten die Designer von JavaScript das Schlüsselwort „new“ und eine neuartige Art der Verwendung von Konstruktorfunktionen. Die Existenz dieses Musters und die Fähigkeit, „pseudoklassenbasierten“ Code zu schreiben, hat bei den Entwicklern zu großer Verwirrung geführt.[8] Hauptartikel: JavaScript/Entstehung und Standardisierung Mit der sechsten Version von ECMAScript (ECMAScript 2015 oder kurz ES6) wurde eine klassenbasierte Syntax eingeführt, die sich an die Konventionen anderer „OOP-Sprachen“ wie Java anpasst. Das Objektkonzept von JavaScript bleibt aber unverändert prototypisch! Hinweis:
Dieser Kurs verwendet die neue Klassensyntax. Er ist eine Überarbeitung des Selfhtml-aktuell-Artikels Organisation von JavaScripten von Mathias Schäfer aus dem Jahre 2006/2008. Damals war die Idee des Unobtrusive JavaScript revolutionär; allerdings mussten für einige DOM-Methoden Frameworks bemüht werden. Der Kurs wurde im Jahre 2021 neu konzeptioniert und behandelt nicht zuerst die Unterschiede von JavaScript gegenüber „herkömmlichen“ Programmiersprachen, sondern benutzt die evtl. schon aus dem Informatikunterricht bekannte Klassen-Syntax, bevor er sich mit den von anderen Programmiersprachen abweichenden Konstruktoren und Instanzen beschäftigt. Weblinks
Abgerufen am 9.11.2026 |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |