Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

OOP mit JavaScript Grundkurs

Mit Properties arbeiten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Object stellt Methoden bereit, um bei Objekten Properties (Eigenschaften) zu definieren und abzufragen. Mit der Methode defineProperty() ist es möglich, nur ein einzelnes Attribut eines Objekts zu fixieren oder dieses zu konfigurieren.
07:14

Transkript

Das Thema dieses Videos sollen sogenannte Properties sein. Ein etwas eigenartiges Thema, denn wenn man "properties" übersetzt, kommt man zu dem Begriff "Eigenschaften". Nur sind Eigenschaften in der objektorientierten Programmierung in der Regel mit Attributen gekoppelt. "Eigenschaften" und "Attribute" sind eigentlich synonym. Wenn man aber von Properties spricht, ist das nicht mehr ganz so der Fall, denn man möchte bei Properties in der Regel einen Zugriff auf Attributwerte gewährleisten. Das macht Microsoft sehr stark in seinem .Net Framework in C#. Beispielsweise werden Properties und Attribute explizit unterschieden. Diese Denkweise hat einiges für sich und wir werden sehen, dass es in JavaScript Möglichkeiten gibt, auch mit sogenannten Properties zu arbeiten. Ich habe hier ein Objekt erzeugt, ganz naiv über eine leere JSON-Syntax. Das heißt, dieses Objekt "o" hat noch keinerlei Eigenschaften. Es gibt eine Methode "object.definedProperty", worüber man jetzt Properties, also Eigenschaften für dieses Objekt festlegen kann. Man gibt als ersten Parameter das Objekt an, für das man die Eigenschaft, die "Property" festlegen möchte, dann den Namen der gewünschten Eigenschaft und dann hat man einen descriptor, ein beschreibendes Objekt in JSON-Notation, worüber man genauere Regeln für die Eigenschaft festlegen kann. Es gibt hier in JavaScript vier relevante Beschreibenseigenschaften. Einmal value, das ist natürlich der Wert. Writable legt fest, ob das eine Schreibeigenschaft ist, das heißt, ob diese Eigenschaft beschrieben werden kann. Enumerable bedeutet festlegen, ob man diese Eigenschaft sieht, bei einer Auflistung, beispielsweise bei keys oder vor int Und configurable, ob die Eigenschaft zu ändern ist. Sie sehen, hier habe ich diese drei Eigenschaften mit true belegt Man kann sie auch mit false belegen, das ist ein Boolescher Wert. In meiner kleinen Funktion "objektstruktur" zeige ich an, wie ein Objekt aussieht. Das heißt, ich mache hier ein "document.write" über alle aufzählbaren Eigenschaften des übergebenen Objektes. Und das hier ist der interessante Bereich. Das heißt, ich habe eine Eigenschaft "a" und den Wert "37". Diese taucht, da sie aufzählbar mit descriptor beschrieben wurde, hier auch in der Auflistung über meine For-Schleife auf. Nun kann man auch den direkten Wert der Eigenschaft auslesen. Das haben Sie direkt danach gesehen, das war die "37", Das heißt, weil ich den Zugriff darauf nicht einschränke, steht diese Eigenschaft lesend zur Verfügung. Ich kann aber auch schreibend darauf zugreifen, das heißt, sie nachträglich durch eine neue Wertzuweisung verändern. Jetzt definiere ich hier eine zweite Property und dort gibt es Standard-Token namens "get" und "set", worüber man einen indirekten Zugriff auf eine Eigenschaft gewährleisten kann, was ja eigentlich auch ein Hauptziel von Properties ist. Das heißt, wenn man lesend auf eine Property "b" zugreift, wird der Wert geliefert, der in dieser Variablen hier steht, das wäre hier das "return". Und umgekehrt, wenn man schreibend auf die Property zugreift, wird dieser Wert über diese anonyme Funktion hier weitergereicht, an diese Variable. Das heißt, das hier ist ein Lesezugriff auf diese Property "b", die damit indirekt den Wert von "bValue" liefert. Ich habe hier eine Ausgabe, die beide Werte einmal vergleicht. Sie werden natürlich sehen, dass sie identisch sind. Das hier ruft aber den Setter auf. Das heißt, es wird indirekt der Wert von "bValue" gesetzt und auch das sehen wir gleich wieder. Das sind hier diese Ausgaben. Es gibt übrigens eine weitere Methode, die heißt "defineProperty", womit man mehrere Eigenschaften gleichzeitig angeben kann. Nach meiner Erfahrung funktioniert die aber in einigen Engines nicht richtig, deshalb möchte ich nicht weiter darauf eingehen. Aber auf einige weitere Methoden möchte ich eingehen, die im Zusammenhang mit Properties sehr interessant sind. Object hat zum Beispiel die Methode "getOwnPropertyNames". "Names" deutet darauf hin, dass es Plural ist und man bekommt hier ein Array respektive ein Objekt geliefert. Ich kann mit meiner Methode zum Ausgeben der Objektstruktur jetzt dieses Objekt ausgeben. Ich kann aber auch einfach einmal ein document.write machen und dann werden Sie sehen, da taucht "a,b" auf. Das sind hier die Properties, wie sie hier angezeigt werden. Eine im Zusammenhang mit Properties weitere, sehr interessante Methode ist "hasOwnProperty", wo man den Namen einer Eigenschaft angeben und damit testen kann, ob ein Objekt diese Property hat. Ich gebe hier "a" an und dann taucht natürlich "true" auf. Das haben Sie gerade eben gesehen. Die Methode "getOwnPropertyDescriptor" liefert wieder ein Objekt respektive Array zurück und das werte ich hier mit meiner Funktion "objektStruktur" aus. Das ist diese Ausgabe hier. Das sind die gesetzten Werte des Descriptors des Objekts und der spezifischen Eigenschaft. Sie sehen hier zwei Parameter: das Objekt und die Property, für die man die Descriptor-Werte haben möchte. Und die letzte Methode, die ich benutze, "getOwnPropertyNames", liefert ein Array mit allen Namen der Eigenschaften. "0" und "1" bedeutet, wir haben ein automatisch indiziertes Array. JavaScript stellt also eine Menge Funktionalitäten und Methoden von object bereit, um Property-Konzepte sinnvoll umzusetzen. Im Wesentlichen bedeutet es eine Einschränkung oder Konfiguration, wie eine Eigenschaft, wie ein Wert zur Verfügung gestellt wird.

OOP mit JavaScript Grundkurs

Sehen Sie, wie Sie mit JavaScript objektorientiert programmieren können.

3 Std. 8 min (35 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!