--- title: costruttore slug: Web/JavaScript/Reference/Classes/constructor translation_of: Web/JavaScript/Reference/Classes/constructor original_slug: Web/JavaScript/Reference/Classes/costruttore ---
Il metodo constructor è un metodo speciale usato per la creazione e l'inizializzazione di un oggetto creato da una classe.
constructor([argomenti]) { ... }
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.
constructorQuesto 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;
}
}
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);
}
| 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')}} |
{{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}} |