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 |