| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/class | [Back] [Original] |
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 Gerten und in vielen Browserversionen. Sie ist seit Mrz 2017 browserbergreifend verfgbar.
Die class-Deklaration erstellt eine Bindung einer neuen Klasse an einen gegebenen Namen.
Sie knnen Klassen auch mit dem class-Ausdruck definieren.
class Polygon {
constructor(height, width) {
this.area = height * width;
}
}
console.log(new Polygon(4, 3).area);
// Expected output: 12
class name {
// class body
}
class name extends otherName {
// class body
}
Der Klassenrumpf einer Klassendeklaration wird im Strict Mode ausgefhrt. Die class-Deklaration ist der let-Deklaration sehr hnlich:
class-Deklarationen sind sowohl auf Blcke als auch auf Funktionen beschrnkt.class-Deklarationen knnen erst nach Erreichen des Deklarationsorts zugegriffen werden (siehe temporre tote Zone). Aus diesem Grund werden class-Deklarationen allgemein als nicht-gehoisted angesehen (im Gegensatz zu Funktionsdeklarationen).class-Deklarationen erzeugen keine Eigenschaften auf globalThis, wenn sie auf oberster Ebene eines Skripts deklariert werden (im Gegensatz zu Funktionsdeklarationen).class-Deklarationen knnen nicht durch irgendeine andere Deklaration im selben Bereich neu deklariert werden.Auerhalb des Klassenkrpers knnen class-Deklarationen wie let neu zugewiesen werden, aber Sie sollten dies vermeiden. Innerhalb des Klassenkrpers ist die Bindung konstant wie const.
class Foo {
static {
Foo = 1; // TypeError: Assignment to constant variable.
}
}
class Foo2 {
bar = (Foo2 = 1); // TypeError: Assignment to constant variable.
}
class Foo3 {}
Foo3 = 1;
console.log(Foo3); // 1
Im folgenden Beispiel definieren wir zuerst eine Klasse namens Rectangle und erweitern sie dann, um eine Klasse namens FilledRectangle zu erstellen.
Beachten Sie, dass super(), das im Konstruktor verwendet wird, nur in Konstruktoren verwendet werden kann und muss aufgerufen werden, bevor das Schlsselwort this verwendet werden kann.
class Rectangle {
constructor(height, width) {
this.name = "Rectangle";
this.height = height;
this.width = width;
}
}
class FilledRectangle extends Rectangle {
constructor(height, width, color) {
super(height, width);
this.name = "Filled rectangle";
this.color = color;
}
}
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-class-definitions |
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |