Objektorientierung in JavaScript/Objekte und Klassen/Das Objekt
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Javascript</language>
Ein Objekt besitzt Attribute (Eigenschaften) und Methoden. Attribute beschreiben die Bedeutung und den Zustand eines Merkmals des Objekts, beispielsweise Seitenanzahl = 764. Methoden definieren das Verhalten eines Objekts. Es können zum Beispiel die Methoden einschalten(), drucken() oder warnungAusgeben() eines Druckers beschrieben (spezifiziert) und umgesetzt (implementiert) werden. Diese werden in Schlüssel-Werte-Paaren gespeichert.<br/><br/>
Objekte können durch Object Literals erstellt werden. Alle Attribute und Funktionen werden zwischen geschweiften Klammern definiert. Schlüssel und Werte werden durch einen Doppelpunkt getrennt.
<code id="56f902f08bf65">
var maria = {
augenfarbe : "blau",
haarfarbe : "braun",
groesse : 1.71,
sprechen : function(zuSagendes) {
return "Maria: \"" + zuSagendes + "\"";
}
};
</code>
<run id="56f902f08bfd6">
var zuSagendes = "Ich bin " + maria.groesse + "m groß.";
maria.sprechen(zuSagendes);
</run>
Als Schlüssel können Strings oder Numbers verwendet werden.
Eine zweite Möglichkeit bietet der Aufruf des Konstruktors von Object. Danach werden weitere Attribute und Methoden hinzugefügt.
<code id="a12bctu2015bg1">
var maria = new Object();
maria.augenfarbe = "blau";
maria.haarfarbe = "braun";
</code>
<run id="a12bctu2015bg2">
maria.haarfarbe;
</run>
Der Zugriff auf Werte des Objekts erfolgt durch Punkt- oder Klammer-Notation.
<run id="4hcfnep1ke1">
maria.augenfarbe == maria["augenfarbe"];
</run>
Objekte können untereinander interagieren.
<code id="54hdfghjk4">
var person1 = {
vorname : "Alex",
nachname : "Alexos",
heiraten : function(gefragtePerson) {
return "Willst du mich heiraten, " + gefragtePerson.vorname+ "? " + gefragtePerson.antwort(this);
}
};
var person2 = {
vorname: "Alexandra",
nachname : "Alexis",
antwort: function(fragendePerson) {
if (fragendePerson.vorname == "Alex" && fragendePerson.nachname == "Alexos") {
return "Ja!";
} else {
return "Nein.";
}
}
};
</code>
<run id="54hdfghjk5">
person1.heiraten(person2);
</run>