--- title: Konstruktor slug: Web/JavaScript/Reference/Klassen/constructor tags: - ECMAScript 2015 - JavaScript - Klassen translation_of: Web/JavaScript/Reference/Classes/constructor ---
{{jsSidebar("Classes")}}

Die constructor Methode ist eine spezielle Methode für das erzeugen und initialisieren von Objekten, die mit dem Schlüsselwort class erzeugt wurden.

Syntax

constructor([Argumente]) { ... }

Beschreibung

In einer Klasse kann es nur eine Methode mit dem Namen "constructor" geben. Eine {{jsxref("SyntaxError")}} Fehlermeldung wird geworfen, wenn in einer Klasse die constructor Methode mehr als einmal vorhanden ist.

Die constructor Methode kann mit dem Schlüsselwort super die constructor Methode der Eltern-Klasse aufrufen.

Wenn man keine constructor Methode erzeugt, wird eine Standardkonstruktor verwendet.

Beispiele

Verwendung der constructor Methode

Dieser Quellcode Ausschnitt wurden vom  classes Beispiel (live Demo) übernommen.

class Square extends Polygon {
  constructor(length) {
    // Hier wird die constructor Methode der Eltern-Klasse aufgerufen,
    // für die Parameter width und height wurde der übergebene length Parameter verwendet
    super(length, length);
    // Anmerkung: In abgeleiteten Klassen, muss die super() Methode aufgerufen werden,
    // bevor man das 'this' Objekt verwenden kann, da es sonst zu einen Referenz Fehler kommt
    this.name = 'Square';
  }

  get area() {
    return this.height * this.width;
  }

  set area(value) {
    this.area = value;
  }
}

Standardkonstruktoren

Wenn man keine constructor Methode anlegt, wird eine Standardkonstruktor verwendet. Für Basis Klassen ist der Standard Konstruktor:

constructor() {}

Für vererbte Klassen, ist das der Standardkonstruktor:

constructor(...args) {
  super(...args);
}

Spezifikationen

Spezifikation Status Kommentar
{{SpecName('ES2015', '#sec-static-semantics-constructormethod', 'Constructor Method')}} {{Spec2('ES2015')}} Initiale Definition.
{{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}} {{Spec2('ESDraft')}}  

Browserkompatibilität

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatChrome(42.0)}} {{CompatGeckoDesktop(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
Default constructors {{CompatUnknown}} {{CompatGeckoDesktop(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support {{CompatNo}} {{CompatChrome(42.0)}} {{CompatGeckoMobile(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatChrome(42.0)}}
Default constructors {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoMobile(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}

Siehe auch