Costruttore di classi JavaScript
Esempio
Crea una classe Car, quindi crea un oggetto chiamato "mycar" basato sulla classe Car:
class Car {
constructor(brand) { // Constructor
this.carname = brand;
}
}
mycar = new Car("Ford");
Altri esempi "Provalo da solo" di seguito.
Definizione e utilizzo
Il constructor()
metodo è un metodo speciale per creare e inizializzare oggetti creati all'interno di una classe.
Il constructor()
metodo viene chiamato automaticamente all'avvio di una classe e deve avere il nome esatto "costruttore", infatti, se non si dispone di un metodo di costruzione, JavaScript aggiungerà un metodo di costruzione invisibile e vuoto.
Nota: una classe non può avere più di un metodo constructor(). Questo genererà un SyntaxError
.
È possibile utilizzare il super()
metodo per chiamare il costruttore di una classe padre (vedere "Altri esempi" di seguito).
Supporto browser
constructor()
è una funzione ECMAScript6 (ES6).
ES6 (JavaScript 2015) è supportato in tutti i browser moderni:
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
constructor()
non è supportato in Internet Explorer 11 (o versioni precedenti).
Sintassi
constructor(parameters)
Dettagli tecnici
Versione JavaScript: | ECMAScript 2015 (ES6) |
---|
Altri esempi
Per creare un'eredità di classe, utilizzare la extends
parola chiave.
Una classe creata con un'eredità di classe eredita tutti i metodi da un'altra classe:
Esempio
Crea una classe denominata "Model" che erediterà i metodi dalla classe "Car":
class Car {
constructor(brand) {
this.carname =
brand;
}
present() {
return 'I have a ' + this.carname;
}
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return this.present() + ', it is a ' + this.model;
}
}
mycar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML
= mycar.show();
Il super()
metodo fa riferimento alla classe padre.
Chiamando il super()
metodo nel metodo del costruttore, chiamiamo il metodo del costruttore del genitore e otteniamo l'accesso alle proprietà e ai metodi del genitore.
Pagine correlate
Esercitazione JavaScript: classi JavaScript
Esercitazione JavaScript: JavaScript ES6 (EcmaScript 2015)
Riferimento JavaScript: la parola chiave estende
Riferimento JavaScript: la super parola chiave