
Aktualizacja z 10 stycznia 2023 rokuJeśli szukasz kursu JavaScriptu, który obejmuje także klasy, może cię zainteresować mój nowy kurs JavaScriptu.
Definiowanie klasy
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Żeby zadeklarować klasę, użyj słowa kluczowego class i podaj jej nazwę (tutaj Rectangle).
Constructor: to specjalna metoda, która inicjalizuje instancję klasy. Za każdym razem, gdy tworzymy nową instancję, konstruktor zostaje wywołany.
Metody w klasie
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
- Metoda prototypu:
area()jest metodą prototypu. - Metoda statyczna:
display()jest metodą statyczną.
Metoda prototypu
Metoda prototypu to metoda dostępna dopiero wtedy, gdy utworzysz instancję klasy. W powyższym przykładzie widać jej wywołanie (linia 17): na obiekcie, przez nazwę metody i nawiasy (ewentualne parametry trafiłyby do środka nawiasów).
Metoda statyczna
Metodę statyczną można wywołać bez tworzenia instancji klasy. Metody statyczne są zdefiniowane na samej klasie, a nie na obiekcie. Oznacza to, że nie wywołasz metody statycznej na obiekcie (rectangle), tylko na klasie (Rectangle), tak jak w linii 19.
Dziedziczenie
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
Do dziedziczenia klas służy słowo kluczowe extends: klasa potomna dopisuje extends zaraz za swoją nazwą.
Klasa utworzona z dziedziczeniem przejmuje wszystkie metody innej klasy. W powyższym przykładzie klasa Model dziedziczy wszystkie metody klasy Car.
Właściwość super() odwołuje się do klasy nadrzędnej. Wywołując super() w konstruktorze, wywołujemy konstruktor rodzica i zyskujemy dostęp do jego właściwości oraz metod.
Dziedziczenie przydaje się do ponownego wykorzystania kodu: tworząc nową klasę, możesz sięgnąć po właściwości i metody klasy już istniejącej.


