--- title: costruttore slug: Web/JavaScript/Reference/Classes/constructor translation_of: Web/JavaScript/Reference/Classes/constructor original_slug: Web/JavaScript/Reference/Classes/costruttore ---
{{jsSidebar("Classes")}}

Il metodo constructor è un metodo speciale usato per la creazione e l'inizializzazione di un oggetto creato da  una classe.

Sintassi

constructor([argomenti]) { ... }

Descrizione

In una classe ci può essere un solo metodo con il nome "constructor". Se una classe contiene una o più occorrenze del metodo constructor viene sollevato un errore di tipo {{jsxref("SyntaxError")}}. 

Un costruttore può usare la keyword super per chiamare il costruttore di una classe genitore.

Se non viene specificato un metodo constructor, verrà usato quello di default.

Esempi

Usare il metodo constructor

Questo pezzo di codice è stato preso da classes sample (live demo).

class Square extends Polygon {
  constructor(length) {
    // Chiama il costruttore della classe padre usando lo stesso valore length
    // come altezza e come larghezza del Poligono
    super(length, length);
    // Nota: Nelle classi derivate, super() deve essere chiamato prima
    // dell'utilizzo di 'this', altrimenti viene sollevato un reference error.
    this.name = 'Square';
  }

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

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

Costruttori predefinito

Se non viene specificato un metodo costruttore, verrà usato quello di default. Per le classi base il costruttore di default è:

constructor() {}

Per le classi derivate invece è:

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

Specifiche

Specifica Stato Commento
{{SpecName('ES6', '#sec-static-semantics-constructormethod', 'Constructor Method')}} {{Spec2('ES6')}} Initial definition.
{{SpecName('ESDraft', '#sec-static-semantics-constructormethod', 'Constructor Method')}} {{Spec2('ESDraft')}}  

Compatibilità con i Browser

{{CompatibilityTable}}

Specifica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Supporto Base {{CompatChrome(42.0)}} {{CompatGeckoDesktop(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
Costruttore predefinito {{CompatUnknown}} {{CompatGeckoDesktop(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
Specifica Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome per Android
Supporto Base {{CompatNo}} {{CompatChrome(42.0)}} {{CompatGeckoMobile(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatChrome(42.0)}}
Costruttore predefinito {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoMobile(45)}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}

Vedi anche