class-Ausdruck

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016.

Das class-Schlüsselwort kann verwendet werden, um eine Klasse innerhalb eines Ausdrucks zu definieren.

Sie können Klassen auch mit der class-Deklaration definieren.

Probieren Sie es aus

const Rectangle = class { constructor(height, width) { this.height = height; this.width = width; } area() { return this.height * this.width; } }; console.log(new Rectangle(5, 8).area()); // Expected output: 40 

Syntax

js
class { // class body } class name { // class body } 

Hinweis: Eine Ausdrucks-Anweisung kann nicht mit dem Schlüsselwort class beginnen, um Verwechslungen mit einer class-Deklaration zu vermeiden. Das class-Schlüsselwort beginnt nur dann einen Ausdruck, wenn es in einem Kontext erscheint, der keine Anweisungen akzeptieren kann.

Beschreibung

Ein class-Ausdruck ist dem class-Deklaration sehr ähnlich und hat fast die gleiche Syntax. Wie bei class-Deklarationen wird der Körper eines class-Ausdrucks im strict mode ausgeführt. Der Hauptunterschied zwischen einem class-Ausdruck und einer class-Deklaration ist der Klassenname, der in class-Ausdrücken weggelassen werden kann, um anonyme Klassen zu erstellen. Klassen-Ausdrücke ermöglichen es Ihnen, Klassen neu zu definieren, während das erneute Deklarieren einer Klasse mit class-Deklarationen einen SyntaxError auslöst. Siehe auch das Kapitel über Klassen für weitere Informationen.

Beispiele

Ein einfacher Klassen-Ausdruck

Dies ist nur ein anonymer Klassen-Ausdruck, den Sie mit der Variablen Foo referenzieren können.

js
const Foo = class { constructor() {} bar() { return "Hello World!"; } }; const instance = new Foo(); instance.bar(); // "Hello World!" Foo.name; // "Foo" 

Benannte Klassen-Ausdrücke

Wenn Sie sich innerhalb des Klassenkörpers auf die aktuelle Klasse beziehen möchten, können Sie einen benannten Klassen-Ausdruck erstellen. Der Name ist nur innerhalb des Gültigkeitsbereichs des Klassen-Ausdrucks selbst sichtbar.

js
const Foo = class NamedFoo { constructor() {} whoIsThere() { return NamedFoo.name; } }; const bar = new Foo(); bar.whoIsThere(); // "NamedFoo" NamedFoo.name; // ReferenceError: NamedFoo is not defined Foo.name; // "NamedFoo" 

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-class-definitions

Browser-Kompatibilität

Siehe auch