JavaScript: Objekte
Erzeugung
- Objekte in Javascript sind eine Zusammenfassung von Werten.
- Die Werte in Objekten können einfache Werte, Funktionen oder Objekte sein
- Ein Objekt kann z.B. über ein Objekt-Literal definiert werden
var me = {
firstName: 'Erich',
lastName: 'Weigand'
}
- In Javascript gibt es keine Klassen
- Objekte erben von anderen Objekten
- Ein Objekt-Literal erbt von Objekt.prototype
Änderung
- Ein Objekt kann nach der Erzeugung jederzeit geändert oder erweitert werden
-
Änderungen oder Erweiterungen betreffen immer nur das erzeugte Objekt und nicht die Eltern
in der Vererbungshierarchie
-
Mit delete me.firstname kann das Element firstname aus dem Objekt
entfernt werden. Auch damit kann man nicht das Eltern-Objekt verändern.
Abfrage
-
Der Wert eines Objekts wird über die Klammernotation abgefragt z.B. me[‚firstName‘]
=> ‚Erich‘
-
Ist der Name der Eigenschaft ein String-Literal, ein gültiger Javascript-Name und kein
reserviertes Wort kann die Punkt-Notation verwendet werden me.firstName
=> ‚Erich‘
Öffentlich und Privat
var Fahrzeug = function(tueren, raeder) {
// this für inner function zur Verfügung stellen
var that = this;
var tueren = tueren; // private
this.geschwindigkeit = 0; //public
function privatTest() { // private
console.log("in privater Funktion");
}
// public function (mit Zugriff auf private Variablen)
this.getTueren = function(){
privatTest();
return tueren;
}
}
// public function (kein Zugriff auf private Variablen)
Fahrzeug.prototype.beschleunigen = function(kmh){
this.geschwindigkeit += kmh;
}
f1 = new Fahrzeug(5,4);
console.log(f1);
console.log(f1.tueren); // undefined weil private
console.log(f1.getTueren()); // ok, weil public function
//console.log(f1.privatTest()); // Fehler weil private function
console.log(f1.geschwindigkeit); // ok, weil public variable
f1.beschleunigen(20); // ok, weil public function
console.log(f1);