
Aggiornamento del 10 gennaio 2023Se cerchi un tutorial su JavaScript che parli anche delle classi, può interessarti il mio nuovo tutorial su JavaScript.
Definire una classe
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Per dichiarare una classe usi la parola chiave class seguita dal nome della classe (qui Rectangle).
Constructor: è il metodo speciale che inizializza un’istanza della classe. Ogni volta che crei una nuova istanza, il costruttore viene invocato.
I metodi di una classe
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
// Méthode prototype
area() {
return console.log(`La zone est ${this.height*this.width}`);
}
// Méthode statique
static display(rect){
return console.log(`Height: ${rect.height} Width: ${rect.width}`);
}
}
const rectangle = new Rectangle(5, 4); // Instancier la classe
rectangle.area();
// La zone est 20
Rectangle.display(rectangle);
// Height: 5 Width: 4
- Metodo prototype:
area()è un metodo prototype. - Metodo statico:
display()è un metodo statico.
Metodo prototype
Un metodo prototype è accessibile solo dopo aver creato un’istanza della classe. Come vedi nell’esempio qui sopra, il metodo prototype si chiama (riga 17) scrivendo il nome dell’oggetto, il nome del metodo e le parentesi (gli eventuali parametri vanno dentro le parentesi).
Metodo statico
Un metodo statico si può chiamare senza istanziare la classe. I metodi statici sono definiti sulla classe stessa, non sull’oggetto. Non puoi quindi chiamarlo sull’oggetto (rectangle), ma sulla classe (Rectangle), come alla riga 19.
Ereditarietà
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return 'c\'est ' + this.carname;
}
}
class Model extends Car {
constructor(brand, model) {
super(brand);
this.model = model;
}
show() {
return console.log(`${this.present()} ${this.model}`);
}
}
const mycar = new Model("Ford", "Mustang");
mycar.show();
// c'est Ford Mustang
Per far ereditare una classe da un’altra si usa la parola chiave extends.
Una classe creata con l’ereditarietà eredita tutti i metodi di un’altra classe. Nell’esempio qui sopra la classe Model eredita tutti i metodi della classe Car.
Il metodo super() fa riferimento alla classe madre. Chiamando super() dentro il costruttore, invochi il costruttore del genitore e ottieni l’accesso alle sue proprietà e ai suoi metodi.
L’ereditarietà è utile per riutilizzare il codice: quando crei una nuova classe puoi riprendere le proprietà e i metodi di una classe che esiste già.


