
Atualizado a 10 de janeiro de 2023Se procuras um tutorial de JavaScript que cubra também as classes, talvez te interesse o meu novo tutorial de JavaScript.
Definir uma classe
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Para declarares uma classe, usa a palavra-chave class seguida do nome da classe (Rectangle, neste caso).
Constructor: é um método especial que inicializa uma instância da classe. Sempre que criamos uma nova instância, o construtor é invocado.
Métodos numa 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
- Método de protótipo:
area()é um método de protótipo. - Método estático:
display()é um método estático.
Método de protótipo
Um método de protótipo só é acessível depois de criares uma instância da classe. Como vês no exemplo acima, o método de protótipo é chamado (linha 17) sobre o objeto, pelo seu nome seguido de parênteses (os eventuais parâmetros iriam dentro desses parênteses).
Método estático
Um método estático é aquele que podes chamar sem instanciar a classe. Os métodos estáticos são definidos na própria classe, não no objeto. Ou seja, não podes chamar um método estático sobre o objeto (rectangle), apenas sobre a classe (Rectangle), como se vê na linha 19.
Herança
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
Para criares herança entre classes, usa a palavra-chave extends.
Uma classe criada com herança herda todos os métodos de outra classe. No exemplo acima, a classe Model herda todos os métodos da classe Car.
A propriedade super() refere-se à classe pai. Ao chamar super() dentro do construtor, chamamos o construtor do pai e ganhamos acesso às suas propriedades e métodos.
A herança é útil para reaproveitar código: podes reutilizar as propriedades e os métodos de uma classe existente quando crias uma nova.


