Account creation on MDN is disabled while we upgrade our moderation mechanisms. If you see something that needs to be fixed, please file a bug: https://bugzilla.mozilla.org/form.doc and we'll handle it as soon as we can. Thanks for your patience!

Der class-Ausdruck

Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.

Der class-Ausdruckin ist eine Methode eine Klasse in ECMAScript 2015 (ES6) zu definieren. Vergleichbar mit dem function-Ausdruck kann die class-Anweisung benannt oder unbenannt sein. Ist sie benannt gilt der Name nur lokal im Klassenkörper. JavaScript-Klassen nutzen prototyp-basierte Verärbung.

Syntax

var MyClass = class [className] [extends] {
  // Klassenkörper
};

Beschreibung

Ein class-Ausdruck hat die gleiche Syntax wie die  class-Anweisung. Jedoch kann mit dem class-Ausdruck der Klassenname ("binding identifier") umgangen werden, was mit der class-Anweisung nicht möglich ist.

Genau wie mit class-Anweisungen wird der Körper der Klasse im strict mode ausgeführt.

Beispiele

Ein einfacher Klassenausdruck

Dies ist nur ein einfacher anonymer class-Ausdruck der über die "Foo"-Variable angesprochen werden kann.

var Foo = class {
  constructor() {}
  bar() {
    return "Hello World!";
  }
};

var instance = new Foo();
instance.bar(); // "Hello World!"
Foo.name; // ""

Benannte class-Ausdrücke

Wenn Sie innerhalb des Klassenkörpers auf die aktuelle Klasse verweisen möchten, können Sie einen benannten class-Ausdruck verwenden. Dieser Name ist nur im Bereich der Klasse selbst gültig und sichtbar.

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

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Class definitions' in dieser Spezifikation.
Standard erstmalige Definition
ECMAScript 2016 Draft (7th Edition, ECMA-262)
Die Definition von 'Class definitions' in dieser Spezifikation.
Entwurf  

Browser Kompatibilität

Funktion Chrome Firefox (Gecko) Internet Explorer Opera Safari
grundlegende Unterstützung 42.0 Nightly build ? ? ?
Funktion Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
grundlegende Unterstützung Nicht unterstützt 42.0 Nightly build ? ? ? 42.0

See also

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: terrluhr
 Zuletzt aktualisiert von: terrluhr,