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

Methoden vs. Funktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
JavaScript unterscheidet bei der Deklaration nicht zwischen Funktionen und Methoden. Das bedeutet, dass jede Funktion als Methode und jede Methode als Funktion verstanden werden kann. Der einzige Weg, hier zu differenzieren, führt über den Aufbau der Programmierung und die bewusste Anwendung.
05:32

Transkript

Wenn man anfängt mit JavaScript zu programmieren wird man relativ schnell die Deklaration von Funktionen kennenlernen. Ich habe hier ein kleines Beispiel und ich werde mal eine typische Funktion deklarieren. Also das macht man ja mit dem Schlüsselwort "function", dann den Namen der Funktion "( )" und in geschweiften Klammern wird dann die Deklaration notiert werden. Das ist eine typische Funktion. Natürlich noch ohne Implementierung. In diesem Video will ich Ihnen zeigen, wie sich Funktionen und Methoden unterscheiden. Denn sie deklarieren ja in der objektorientierten Programmierung keine Funktion, sondern Methoden. Wie unterscheiden sich also Funktionsdeklarationen von Methodendeklarationen. Nun ich schreibe mal eine typische Methode in JavaScript. Man beginnt mit dem Schlüsselwort "function", schreibt dann den Namen, "( )" und geschweifte Klammer auf, geschweifte Klammer zu. Sofern Sie jetzt glauben, ich hätte genau das Gleiche hingeschrieben, haben Sie vollkommen recht. Es gibt im Grunde in JavaScript durch diese Prototype-Struktur und die Hashstruktur von den Objekten keinerlei Unterscheid, wie man eine Funktion oder eine Methode deklariert. Umgekehrt: Jede Funktion kann damit auch als Methode verstanden werden. Das ist eine etwas unbefriedigende Situation. Sie ist auf der einen Seite sehr einfach und sehr klar, aber wirklich unbefriedigend, denn man möchte ja normalerweise dass eine Methode über ein Objekt oder über eine Klasse, oder ein Prototyp von mir aus, aufgerufen wird. Aber Sie können das in JavaScript im Grunde durch die Deklaration rein formal überhaupt nicht gewährleisten. Es liegt ausschließlich an der Art, wie die Funktion programmiert wird, ob es sich um eine Methode handelt oder eine Funktion. Das heißt, hier am Inhalt kann man es fest machen. Wenn man eine typische Funktion hat, dann schreibt man sowas hin, wie "var a"; damit hat man eine lokale Variable angelegt. Das kann man selbstverständlich hier auch machen. Also in einer Methode, wenn ich das hier als Methode verstehe. Der entscheidende Punkt ist aber, wie deklarieren wir Eigenschaften und Zugriffe auf das Objekt, zu dem eine Methode gehört. In dem Fall habe ich natürlich noch kein direktes Objekt zur VErfügung. Oder etwa doch? Ja wir haben eins, nämlich das anonyme Objekt, das globale Objekt. Und auf dieses greife ich zu über das Schlüsselwort "this". Und das bedeutet, wenn ich so etwas mache, dann greife ich auf eine Eigenschaft des globalen Objekts zu. Das bedeutet wiederum, dass man bei Methodendeklarationen grundsätzlich mit diesem "this"-Schlüsselwort arbeitet, um tatsächlich an das Objekt zu kommen, zu dem eine Methode gehört. In dem Fall würde ich jetzt eine Eigenschaft "test" deklarieren, und hier zum Beispiel eine anonyme Funktion dranhängen. So etwas könnte man so machen. Das hier nennt man dann auch einen sogenannten Methoden-Slot. In diesem einfachen Fall vom globalen Objekt. Nun muss man zur Abrundung dieser Überlegung auch mal was ausprobieren, was wirklich sehr beeindruckend ist. Denn Sie können jede Funktion in JavaScript nutzen, um ein Objekt zu erzeugen. Jede. Das bedeutet, ich kann so was machen. Das ist ja der Aufruf einer Konstruktor-Methode im Grunde, durch dieses "new" vorangestellt. Und jede beliebige Funktion, egal welchen strukturellen Aufbau sie hat, liefert ein Objekt zurück. Das ist ein Preis, den man eigentlich nicht zahlen möchte, weil man möchte in einer sicheren objektorientierten Programmierung eigentlich, dass nur wirklich als Konstruktor-Methoden aufgebaute Funktionen - wenn ich sie jetzt mal so nenne - auch wirklich zur Erzeugung von Objekten genutzt werden können. Aber das ist in JavaScript eben nicht der Fall. Ein Preis dessen, dass sich Funktionen und Methoden im Grunde nicht unterscheiden, außer dass man sich beim Aufbau einer Funktion eben an gewisse Regeln hält. Und diese Regeln möchte ich nochmal zusammenfassen. Man sollte selbstverständlich aus einer Methode heraus nicht auf globale Variablen zugreifen und ähnliche Dinge. Man sollte dort alles nur über Eigenschaften nach außen geben, was man möchte. Also das Schlüsselwort "this.", Name der Eigenschaft. Damit geben Sie echte Eigenschaften, aber auch interne Methoden nach außen. Alles andere wird privatisiert über beispielsweise lokale Variablen oder sogenannte closures. Im Grunde genommen haben wir hier mit einer inneren anonymen Funktion ein closure vorliegen, eine eingeschlossene Funktion. Ansonsten wird jede Methode klassisch deklariert wie eine Funktion. Also Schlüsselwort "function", Name der Methode, in den Klammern gegeben als Parameter, geschweiften Klammern die Implementierung und natürlich können Sie mit "return" auch einen Rückgabewert liefern.

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!