OOP

In JavaScript gibt es keine Klassen, also nicht wie man es von anderen Programmiersprachen gewohnt ist. Aber es gibt Objekte und OOP steht ja für Objektorientierte Programmierung.
Funktionen stellen in JavaScript Objekte vom Typ Function dar und können als Konstruktor genutzt werden, um Objekte vom Typ Object zu erstellen. Arrow Funktionen können nicht als Konstruktor genutzt werden.

Um Eigenschaften zu definieren, ist es wichtig var zu verwenden. Damit diese nur innerhalb der Funktion gültig sind und nicht global manipuliert werden können.

Um diese Eigenschaften nutzen zu können kann man sich ein Objekt mit entsprechender Methode zurückgeben lassen.

Hier kann man sehen was JavaScript erstellt hat.

Eigene Objekte mit Eigenschaften und Methoden könnten diese Form haben.

Man kann auch eine Form ohne return Anweisung nutzen.

Innerhalb einer Funktion kann man sicherstellen, dass diese mit new aufgerufen wird.

Wenn man Funktionen als Methoden aufruft, zeigen sie auf das jeweilige Objekt.
Ruft man sie als Funktionen auf, werden die Eigenschaften mit this global definiert.