ECMAScript-Objektorientierte Technologie

Objektorientierte Begriffe

Objekte

ECMA-262 definiert Objekte (object) als "eine unsortierte Sammlung von Eigenschaften, bei denen jede Eigenschaft einen primitiven Wert, ein Objekt oder eine Funktion enthält".严格来说,这意味着对象是无特定顺序的值的数组。

Obwohl ECMAScript Objekte so definiert, hat es eine noch allgemeineren Definitionsbegriff basierend auf dem Nominalen (Menschen, Orte oder Dinge) der Code-Repräsentation.

Klassen

Jedes Objekt wird durch eine Klasse definiert, und man kann eine Klasse als Rezept für ein Objekt betrachten. Eine Klasse muss nicht nur das Interface (Interface) des Objekts definieren (die Attribute und Methoden, die von Entwicklern aufgerufen werden), sondern auch die interne Funktionsweise (der Code, der die Attribute und Methoden aktiviert) definieren. Compiler und Interpreter bauen Objekte basierend auf den Beschreibungen der Klassen.

Instanzen

Wenn ein Programm Objekte durch Klassen erstellt, werden die generierten Objekte als Instanzen der Klasse bezeichnet. Die einzige Beschränkung für die Anzahl der von einer Klasse generierten Objekte ist die physische Speicherkapazität des Computers, auf dem der Code ausgeführt wird. Jede Instanz verhält sich gleich, aber jede Instanz verarbeitet eine Reihe unabhängiger Daten. Der Prozess der Erstellung von Objekten durch Klassen wird als Instantiierung bezeichnet.

Wie bereits in den vorherigen Kapiteln erwähnt, verfügt ECMAScript nicht über formale Klassen. Stattdessen definiert ECMA-262 Objekte als Rezepte für Objekte. Dies ist eine logische Kompromisslösung in ECMAScript, da die Objektdefinitionen tatsächlich Objekte selbst sind. Obwohl Klassen nicht wirklich existieren, bezeichnen wir die Objektdefinitionen als Klassen, da die meisten Entwickler diesen Begriff vertraut sind und funktional äquivalent sind.

Anforderungen einer objektorientierten Sprache

Eine objektorientierte Sprache muss vier grundlegende Fähigkeiten für Entwickler bereitstellen:

  1. Kapselung - Die Fähigkeit, verwandte Informationen (egal ob Daten oder Methoden) in einem Objekt zu speichern
  2. Kollaboration - Die Fähigkeit, ein Objekt in einem anderen Objekt zu speichern
  3. Vererbung - Die Fähigkeit, Eigenschaften und Methoden von einer anderen Klasse (oder mehreren Klassen) zu übernehmen
  4. Polymorphie - Die Fähigkeit, Funktionen oder Methoden zu schreiben, die auf verschiedene Weisen ausgeführt werden können

ECMAScript unterstützt diese Anforderungen und kann daher als objektorientiert betrachtet werden.

Die Struktur von Objekten

In ECMAScript bestehen Objekte aus Eigenschaften (Attribute), die sowohl primitive Werte als auch Referenzwerte sein können. Wenn die Eigenschaft eine Funktion enthält, wird sie als Methode des Objekts betrachtet, andernfalls wird die Eigenschaft als Eigenschaft des Objekts betrachtet.