Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.
Methodendefinition ist eine kürzere Syntax zur Definition einer Funktions-Eigenschaft in einem Objekt-Initialisierer. Sie kann auch in Klassen verwendet werden.
Die Kurzsyntax ist ähnlich der getter und setter Syntax.
Gegeben ist der folgende Code:
Sie können diesen nun verkürzen zu:
Eigenschaften, die mit dieser Syntax definiert werden, sind eigene Eigenschaften des erstellten Objekts, und sie sind konfigurierbar, aufzählbar und beschreibbar, genau wie normale Eigenschaften.
function*, async function, und async function* Eigenschaften haben alle ihre jeweiligen Methodensyntaxen. Siehe Beispiele unten.
Beachten Sie jedoch, dass die Methodensyntax nicht gleichbedeutend mit einer normalen Eigenschaft mit einer Funktion als Wert ist — es gibt semantische Unterschiede. Dies macht Methoden, die in Objektliteralen definiert sind, konsistenter mit Methoden in Klassen.
Methoden können keine Konstruktoren sein! Sie werden einen TypeError werfen, wenn Sie versuchen, sie zu instanziieren. Andererseits kann eine als Funktion erstellte Eigenschaft als Konstruktor verwendet werden.
Nur Funktionen, die als Methoden definiert sind, haben Zugriff auf das super Schlüsselwort. super.prop sucht die Eigenschaft im Prototyp des Objekts, auf dem die Methode initialisiert wurde.
Sie können exakt dieselbe Syntax verwenden, um öffentliche Instanzmethoden zu definieren, die auf Klasseninstanzen verfügbar sind. In Klassen benötigen Sie das Komma als Trennzeichen zwischen Methoden nicht.
Öffentliche Instanzmethoden werden auf der prototype Eigenschaft der Klasse definiert und sind somit allen Instanzen der Klasse gemeinsam. Sie sind beschreibbar, nicht aufzählbar und konfigurierbar.
Innerhalb von Instanzmethoden funktionieren this und super wie in normalen Methoden. Normalerweise bezieht sich this auf die Instanz selbst. In Unterklassen ermöglicht super den Zugriff auf den Prototyp des Objekts, an das die Methode angehängt ist, was ermöglicht, Methoden aus der Superklasse aufzurufen.
Statische Methoden und private Methoden verwenden ähnliche Syntaxen, die auf den Seiten static und private Elemente beschrieben werden.
Die Methodensyntax unterstützt auch berechnete Eigenschaftsnamen.
Beachten Sie, dass das Sternchen (*) in der Generator-Methodensyntax vor dem Namen der Generatoreigenschaft stehen muss. (Das heißt, * g(){} funktioniert, aber g *(){} nicht.)
| ECMAScript® 2027 Language Specification # sec-method-definitions |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.