Daten und die Funktionen, die auf sie wirken, sind voneinander getrennt.
Programme werden in eine Abfolge von Anweisungen und Funktionen zerlegt, die sequenziell ausgeführt werden.
Daten (Attribute) und die zugehörigen Funktionen (Methoden) werden in Objekten gekapselt.
Der Code ist in Klassen organisiert, aus denen Objekte gebildet werden.
Objekte sind durch ihre Attribute (Daten) festgelegt und erhalten in Methoden ("Programme") Anweisungen (Algorithmus) (Funktionsgraph, Bewegung eines Balls).
Ein Algorithmus ist eine Folge von Anweisungen, die sich in Steuerstrukturen unterteilen lassen:
Sequenz
Wiederholung (mit Zähler oder Bedingung)
bedingte Anweisung (Wenn-Dann-Sonst)
Eigenschaften (Attribute) und Methoden gleichartiger Objekte werden in Klassen zusammengefasst. wobei Objekte durch Konstruktor-Methoden aus der Klasse mit dem Operator new gebildet werden und den Attributen der Klasse Werte zugewiesen (Initialisierung) werden.
Innerhalb einer Klasse werden Objekte mit this bezeichnet.
Attribute und Methoden in statischen Klassen brauchen keinen Bezeichner this..
Objekte können auf Attribute und Methoden anderer Objekte zugreifen, indem deren Klasse als Datentyp deklariert wird, was man Referenzierung (Beziehung zwischen Objekten) nennt
Von besonderer Bedeutung ist die Enthält-Beziehung (schwingende Perlen einer Perlenkette ergeben eine Welle).
Referenzen können auch eine Kommunikation (Ampeln bei einem Fußgängerüberweg) zwischen den Objekten ermöglichen.
Da JavaScript keine Datentypen kennt, ist eine Referenzierung nicht so strukturiert wie bei Programmiersprachen mit Datentyp darstellbar.
Eine weitere Möglichkeit Attribute und Methoden einer anderen Klasse in einer Klasse zu verwenden ist die Vererbung. Dabei können Methoden der Oberklasse durch gleichnamige Methoden der Unterklasse überschrieben (Polymorphie) werden (verschiedene Arten von Funktionen).
Zur Darstellung können Klassen-, Zustands- und Sequenz-Diagrammen verwendet werden.