Article image
Rafael Biasiolo
Rafael Biasiolo07/02/2024 08:55
Compartilhe

Orientação a Objetos em JavaScript

  • #JavaScript
  • #Boas práticas

A orientação a objetos é um paradigma de programação que se baseia na organização do código em torno de objetos, entidades que possuem características (atributos) e comportamentos (métodos). Em JavaScript, apesar de ser uma linguagem de programação multiparadigma, é possível utilizar conceitos de orientação a objetos.

Objetos em JavaScript:

Em JavaScript, praticamente tudo é um objeto. Os objetos em JavaScript podem ser criados de diversas formas, sendo a mais comum através de objetos literais. Veja um exemplo simples:

// Criando um objeto literal
let carro = {
marca: 'Toyota',
modelo: 'Corolla',
ano: 2022,
ligar: function() {
  console.log('Carro ligado!');
}
};

// Acessando propriedades e métodos
console.log(carro.marca); // Saída: Toyota
carro.ligar(); // Saída: Carro ligado!

Funções Construtoras e Protótipos:

Outra maneira de criar objetos em JavaScript é usando funções construtoras. Essas funções são utilizadas para criar objetos similares (instâncias) com características em comum. A palavra-chave `this` é usada para se referir ao objeto que será criado.

// Função construtora
function Pessoa(nome, idade) {
this.nome = nome;
this.idade = idade;
}

// Criando instâncias
let pessoa1 = new Pessoa('João', 30);
let pessoa2 = new Pessoa('Maria', 25);

console.log(pessoa1.nome); // Saída: João
console.log(pessoa2.idade); // Saída: 25

Além disso, os objetos em JavaScript têm um relacionamento de protótipo. Cada objeto possui um protótipo do qual herda propriedades e métodos. A herança em JavaScript é prototípica, não seguindo a tradicional herança de classes encontrada em algumas linguagens orientadas a objetos.

Classes em JavaScript (ES6+):

A partir do ECMAScript 6 (ES6), JavaScript introduziu a sintaxe de classes, proporcionando uma forma mais familiar de trabalhar com orientação a objetos para aqueles acostumados com linguagens baseadas em classes, como Java e C++.

// Definindo uma classe
class Animal {
constructor(nome) {
  this.nome = nome;
}

fazerBarulho() {
  console.log('Barulho genérico do animal');
}
}

// Criando uma instância da classe
let gato = new Animal('Bichano');

// Chamando método da instância
gato.fazerBarulho(); // Saída: Barulho genérico do animal

Em resumo, JavaScript oferece diversas formas de implementar a orientação a objetos, seja através de objetos literais, funções construtoras, protótipos ou, mais recentemente, usando a sintaxe de classes introduzida pelo ES6. A escolha da abordagem dependerá do contexto e das preferências do desenvolvedor. O importante é compreender os conceitos fundamentais de objetos, encapsulamento, herança e polimorfismo, independentemente da forma como são implementados em JavaScript.

Compartilhe
Comentários (1)
Regilene Silva
Regilene Silva - 07/02/2024 11:22

Nossa, Rafael! Gostei muito desse conteúdo. Estudo Python, e estou fazendo a trilha front-end da DIO (html,css e javascript), tinha começado a estudar C#, mas comparado ao Python parece muito das cavernas kkkkk

Aí já tava apreensiva com o Javascript. Com exemplo pareceu muito amigável, pelo menos menos assustador que c#.