Classes
Uma classe é um modelo para criar objetos do mesmo tipo. Define quais
dados eles terão (no constructor) e o que podem fazer (os métodos).
class Pessoa {
constructor(nome, idade) {
this.nome = nome;
this.idade = idade;
}
saudar() {
return `Olá, sou ${this.nome}`;
}
}
const ana = new Pessoa("Ana", 30);
console.log(ana.saudar()); // "Olá, sou Ana"
constructor: método especial que é executado ao criar o objeto comnew. Serve para inicializar as propriedades.new Pessoa(...): cria uma nova instância da classe.- Os métodos são escritos dentro da classe, sem a palavra
function.
Protótipos: o que há por baixo
As classes são uma sintaxe mais cômoda sobre o sistema de protótipos do
JavaScript. Os métodos não são copiados em cada objeto: eles vivem em um objeto
compartilhado (o protótipo) e todas as instâncias o consultam. Por isso criar
mil pessoas não duplica mil vezes o método saudar.
Exemplos
Definir uma classe e criar instâncias
class Retangulo {
constructor(largura, altura) {
this.largura = largura;
this.altura = altura;
}
area() {
return this.largura * this.altura;
}
}
const r = new Retangulo(4, 3);
console.log("Área:", r.area());