Layoutprobleme? - Styleswitcher!
![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Patrick Freitag Registriert seit: 17.08.2005
Beiträge: 105
| Objektorientierte Programmierung in JavaScript In diesem Tutorial möchte ich die Möglichkeiten die JavaScript bezüglich der objektorientierten Programmierung zu bieten hat, aufzeigen. Inhalt:
Viele halten JavaScript noch immer für den Grundsatz alles Bösen das in den letzten Jahren an Geblinke, Geblitze und anderen Greultaten die im Internet kursierten. Seit dem Web 2.0 konnte JavaScript einiges an Punkten gut machen und findet sich mittlerweile sogar in den Top 10 der beliebtesten Programmiersprachen. Die Anwendungsgebiete fallen hauptsächlich in die DOM-Manipulation, Effekte im Browser oder ähnliches. Ebenso hat JavaScript den schlechten Ruf unsicher zu sein, welcher jedoch durch das sandboxing um einiges verringert wird (ActiveX-Elemente ausgenommen) und durch gute Programmierung vernichtet wird. JavaScript ist eine auf Objekten basierende Programmiersprache. Es gibt zahlreiche vordefinierte Objekte wie z.B das String oder Window-Objekt. Klassen und Konstruktor definieren In JavaScript gibt es keine Klassen-Definition im herkömmlichen Sinne. Eine Klasse wird, wie in allen gängigen Programmiersprachen, mit dem Schlüsselwort "new" initialisiert. Als Test-Klasse werden wir ein Auto verwenden und daran rumspielen. Code: function Car(CarColor) {
this.CarColor = CarColor;
} Code: function Car(CarColor) {
this.CarColor = CarColor;
}
var Jeep = new Car('blue'); // Initialisierung des Objekts "Car"
alert(Jeep.CarColor); // Direkter Zugriff auf die Eigenschaft "CarColor" Datenkapselung von Methoden und Eigenschaften Die Datenkapselung ist in der objektorientierten Programmierung natürlich ein wichtiges und unabdingbares Feature das natürlich auch in JavaScript nicht fehlen darf. In JavaScript existieren nur öffentliche (public) und private (private) Eigenschaften und sogenannte "privilegierte öffentliche Methoden", "nicht-privilegierte öffentliche Methoden" und natürlich private Methoden. Code: function Car(CarColor) {
// öffentliche (public) Eigenschaft
this.CarColor = CarColor;
// privilegierte öffentliche Methode
this.setCarColor = function(newCarColor) {
this.CarColor = newCarColor;
}
}
var Jeep = new Car('blue');
alert(Jeep.CarColor);
Jeep.setCarColor('orange');
alert(Jeep.CarColor); Code: function Car() {
// private Eigenschaft
var CarTank = '100 Liter';
// privilegierte öffentliche Methode
this.setCarTank = function(newCarTank) {
CarTank = newCarTank; // Zuweisung des neuen Tankinhaltes
getCarTank(); // Aufruf der privaten Methode
}
var getCarTank = function() {
// Ausgabe der privaten Eigenschaft
alert(CarTank);
}
}
var Cabrio = new Car();
Cabrio.setCarTank('200 Liter');
alert(Cabrio.CarTank); // Liefert "undefined"
Cabrio.getCarTank(); // Liefert "is not a function" In JavaScript ist es möglich bestehende Methoden bzw. Objekte nachträglich zu beeinflußen. Dies funktioniert mittels sogenannten "Prototypen" auf die JavaScript basiert. Dies hat den Vorteil von mehr Unabhängigkeit und Flexibilität für den Programmierer. Code: function Car() {
// öffentliche Eigenschaft
this.CarName = "Audi";
// private Eigenschaft
var CarColor = "Black";
// private Methode
var setCarColor = function(newCarColor) {
CarColor = newCarColor;
}
// privilegierte öffentliche Methode
this.getCarInfosInside = function() {
setCarColor('Green');
alert("CarName:" + this.CarName + " CarColor:" + CarColor);
}
}
// nicht-privilegierte öffentliche Methode
Car.prototype.getCarInfosOutside = function() {
setCarColor('Green');
alert("CarName:" + this.CarName + " CarColor:" + CarColor);
}
var Audi = new Car();
Audi.getCarInfosInside(); // Liefert "Audi" und "Green"
Audi.getCarInfosOutside(); // Liefert "setCarColor" is not defined, "Audi" und "undefined" Vererbung Durch die Prototypen-Funktionen ist es möglich Vererbung in JavaScript zu benutzen. Code: // Superklasse
function Car(CarName) {
this.CarName = CarName;
this.CarWheels = "4";
}
// Subklasse
function Audi(CarName) {
// Dieser Konstruktor ruft den Konstruktor der Superklasse auf
this.constructor(CarName);
this.CarColor = 'Black';
this.getCarInfos = function() {
alert(this.CarName + " is " + this.CarColor + " and has " + this.CarWheels + " Wheels!");
}
}
Audi.prototype = new Car(); // Hier passiert die Vererbung
AudiA3 = new Audi('Audi A3');
Audi80 = new Audi('Audi 80');
AudiA3.getCarInfos(); // Liefert "Audi A3 is Black and has 4 Wheels"
Audi.prototype.setCarColor = function(newCarColor) {
this.CarColor = newCarColor;
this.getCarInfos();
}
Audi80.setCarColor('Yellow'); // Liefert "Audi 80 is Yellow and has 4 Wheels" Nachwort Nun solltet ihr in der Lage sein einfache Klassen mit JavaScript erstellen zu können. Außerdem ist dieses Tutorial die Grundlage für weitere Tutorials die ich hier veröffentlichen werde. Sollte es Fragen zu diesem Tutorial geben, erstellt bitte im JavaScript-Forum einen Thread mit dem Verweis auf dieses Tutorial. Sollte es (konstruktive) Kritik an diesem Tutorial geben, bitte ich um eine Private Nachricht. Viel Spaß damit, Patrick Geändert von Jann Hendrik (21.02.2008 um 08:59 Uhr). |
| | |
![]() |
« [Server] LAMPP mit ftp, openSSL, msmtp, webalizer und phpmyadmin in einer chroot
|
[PHP] Ein eigenes Templatesystem schreiben »
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Umfrage] Hover Effekt: CSS oder Javascript | DER_Brain | Plauderecke | 27 | 12.09.2006 13:05 |
| [Rezension] Professionelle PHP 5-Programmierung, | Ben | Literatur | 11 | 27.07.2006 20:48 |
| [JS] Alle Checkboxen auf einmal (de-)markieren | Buhmann | Tutorials | 0 | 15.03.2006 17:40 |
| Javascript durch php beschleunigen? | Heuni | PHP-Programmierung | 13 | 20.04.2005 09:36 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:49 Uhr.
Nach oben






