A Orientação a Objetos (OO) é um paradigma de programação que organiza o código em entidades chamadas objetos, que encapsulam dados (propriedades) e comportamentos (métodos). Em JavaScript, o suporte à OO é implementado com a introdução de classes a partir do ECMAScript 6 (ES6), simplificando a criação de estruturas baseadas em objetos.
Uma classe é um modelo para criar objetos. Ela define as propriedades e métodos que os objetos terão.
class Animal {
constructor(name, species) {
this.name = name;
this.species = species;
}
describe() {
return `${this.name} é um ${this.species}.`;
}
}
Um objeto é uma instância de uma classe, representando uma entidade concreta baseada na classe.
var dog = new Animal('Rex', 'cachorro');
console.log(dog.describe()); // Rex é um cachorro.
As propriedades armazenam informações do objeto, enquanto os métodos definem os comportamentos.
class Calculator {
add(a, b) {
return a + b;
}
}
var calc = new Calculator();
console.log(calc.add(5, 3)); // 8