--- 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.
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; } }
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}} |