Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 13 Objekte und Arrays
  gp 13.1 Array-Erweiterungen
    gp 13.1.1 Einfügen, nicht anfügen
    gp 13.1.2 Anfügen und löschen
    gp 13.1.3 Array-Elemente mischen
    gp 13.1.4 Sortieren
  gp 13.2 Eigene Objekte
    gp 13.2.1 Allgemeines
    gp 13.2.2 Methoden definieren
    gp 13.2.3 Eigene Sortiermethode
    gp 13.2.4 Eigene Sortiermethode, Teil 2
    gp 13.2.5 Zusammenfassung
    gp 13.2.6 Platzsparende Notation
  gp 13.3 JavaScript-Objekte erweitern


Galileo Computing

13.3 JavaScript-Objekte erweitern  toptop

Eine besondere Eigenschaft jeder JavaScript-Klasse ist prototype. Damit können Sie unter anderem das OOP-Konzept der Vererbung implementieren. Als Wert für die Eigenschaft prototype geben Sie Eigenschaften und Methoden an, die alle Objekte der Klasse haben sollen. Angenommen, Sie haben eine allgemeine Klasse Auto implementiert, mit Eigenschaften wie ps und Methoden wie beschleunigen(). Dann erstellen Sie eine Klasse ElchAuto. Die soll alle Eigenschaften und Methoden der Klasse Auto besitzen, allerdings auch eine neue Methode: umkippen(). Das machen Sie dann so:

function Auto() {
  // Auto wird implementiert ...
}

function ElchAuto() {
   this.umkippen = function() {
      // umkippen implementieren
   };
}
ElchAuto.prototype = new Auto();

Diese Form der Erweiterung ist allerdings auch bei bestehenden JavaScript-Objekten möglich! Erinnern Sie sich noch an die Funktion zufall_intervall()aus Kapitel 6? Wenn diese einen Wert zwischen 65 und 90 zurückliefert, liegt ein ASCII-Code eines zufälligen Zeichens zwischen A und Z vor. Es wäre doch schön, wenn das String-Objekt von JavaScript eine solche Funktionalität direkt als Methode anbieten würde (zugegeben, über den praktischen Nutzen kann man diskutieren, aber es geht vor allem ums Prinzip). Mit der prototype-Eigenschaft ist das kein Problem:

function zufall_intervall(a, b) {
  var z = Math.random();
  z *= (b – a + 1);
  z += a;
  return (Math.floor(z));
}

String.prototype.random = function() {
   return String.fromCharCode(zufall_intervall(65, 90));
};

Das String-Objekt besitzt jetzt eine Methode random(), allerdings nur wenn Sie die Klasse instanziieren (oder einen neuen String erstellen). Hier sehen Sie ein komplettes Beispiel, das ein Zufallszeichen zwischen A und Z erzeugt und ausgibt:

<html>
<head>
<title>Events</title>
<script type="text/javascript"><!--
function zufall_intervall(a, b) {
   var z = Math.random();
   z *= (b – a + 1);
   z += a;
   return (Math.floor(z));
}
String.prototype.random = function() {
   return String.fromCharCode(zufall_intervall(65, 90));
};
//--></script>
</head>
<body>
<h1>Event-Listener</h1>
<form>
<input type="button" value="Zufallszeichen"
   onclick="alert((new String()).random());" />
</body>
</html>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 13.4     Ein zufälliges Zeichen




1  Denken Sie daran, dass Array-Indizes mit null beginnen.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de