Traduzione in corso.
Il metodo constructor
è un metodo speciale usato per la creazione e l'inizializzazione di un oggetto creato da una classe
.
Sintassi
costructor([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 sollevata un 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 metodo constructor della classe padre usando lengths // per gli argomenti width e height super(length, length); // Nota: Nelle classi derivate, super() deve essere chiamato prima // dell'utilizzo di 'this'. Lasciandolo così questo causa un reference error. this.name = 'Square'; } get area() { return this.height * this.width; } set area(value) { this.area = value; } }
Costruttori di default
Se non viene specificato un metodo constructor, verrà usato quello di default. Per le classi base il costruttore di default è:
constructor() {}
Per le classi derivate invece è:
constructor(...args) { super(...args); }
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Constructor Method' in that specification. |
Standard | Initial definition. |
ECMAScript 2017 Draft (ECMA-262) The definition of 'Constructor Method' in that specification. |
Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 42.0 | 45 (45) | ? | ? | ? |
Default constructors | ? | 45 (45) | ? | ? | ? |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | No support | 42.0 | 45.0 (45) | ? | ? | ? | 42.0 |
Default constructors | ? | ? | 45.0 (45) | ? | ? | ? | ? |