Neste artigo você vai aprender os fundamentos de JavaScript Orientado a Objetos, um paradigma muito utilizado na programação
Fala programador(a), beleza? Bora aprender orientação a objetos com JavaScript!
JavaScript é uma linguagem de programação orientada a objetos (OOP), o que significa que ela permite que você crie objetos que possuem propriedades e métodos.
Isso pode ajudar a tornar o seu código mais organizado e reutilizável, já que você pode criar objetos que representam coisas do mundo real, como usuários, produtos ou configurações.
Aqui está um guia básico para entender e usar o JavaScript orientado a objetos:
Crie um objeto com a notação de chaves
Para criar um objeto em JavaScript, você pode usar a notação de chaves e atribuir propriedades e métodos a ele.
As propriedades são valores associados ao objeto e os métodos são funções associadas ao objeto.
Por exemplo, aqui está como criar um objeto que representa um produto:
const product = { name: "Cadeira", price: 100, getPrice: function() { return this.price; } };
Acesse as propriedades e métodos de um objeto com o ponto
Depois de criar um objeto, você pode acessar as suas propriedades e métodos usando o ponto.
Por exemplo, aqui está como acessar as propriedades e métodos do objeto de produto criado acima:
console.log(product.name); // "Cadeira" console.log(product.getPrice()); // 100
Altere as propriedades de um objeto com o ponto
Você também pode alterar as propriedades de um objeto usando o ponto. Por exemplo, aqui está como alterar o preço do produto:
product.price = 150; console.log(product.getPrice()); // 150
Crie um objeto com a função construtora
Outra forma de criar um objeto em JavaScript é usando uma função construtora.
Uma função construtora é uma função especial que é usada para criar e inicializar um objeto.
Por exemplo, aqui está como criar um objeto de produto usando uma função construtora:
function Product(name, price) { this.name = name; this.price = price; this.getPrice = function() { return this.price; }; } const chair = new Product("Cadeira", 100); console.log(chair.name); // "Cadeira" console.log(chair.getPrice()); // 100
Crie um objeto com uma classe
Outra forma de criar um objeto em JavaScript é usando uma classe.
Uma classe é um modelo para criar objetos com propriedades e métodos semelhantes.
Por exemplo, aqui está como criar um objeto de produto usando uma classe:
class Product { constructor(name, price) { this.name = name; this.price = price; } getPrice() { return this.price; } } const table = new Product("Mesa", 200); console.log(table.name); // "Mesa" console.log(table.getPrice()); // 200
Herde de uma classe com a palavra-chave extends
Você também pode criar uma classe que herda de outra classe usando a palavra-chave extends
.
Isso permite que você crie uma nova classe com as mesmas propriedades e métodos da classe original, além de adicionar novas propriedades e métodos.
Por exemplo, aqui está como criar uma classe de mobília que herda de uma classe de produto:
class Furniture extends Product { constructor(name, price, material) { super(name, price); this.material = material; } } const couch = new Furniture("Sofá", 500, "Couro"); console.log(couch.name); // "Sofá" console.log(couch.getPrice()); // 500 console.log(couch.material); // "Couro"
Use o método Object.create
para criar um objeto com uma outra objeto como protótipo
O método Object.create
permite que você crie um novo objeto com outro objeto como protótipo. Isso significa que o novo objeto herdará as propriedades e métodos do objeto protótipo.
Por exemplo, aqui está como criar um objeto de usuário com um objeto de pessoa como protótipo:
const person = { sayHello: function() { return `Olá, meu nome é ${this.name}`; } }; const user = Object.create(person); user.name = "João"; console.log(user.sayHello()); // "Olá, meu nome é João"
Use o método Object.assign
para copiar propriedades de um objeto para outro
O método Object.assign
permite que você copie as propriedades de um objeto para outro.
Isso é útil quando você quer criar um novo objeto com algumas propriedades de outro objeto, mas não quer herdar de seu protótipo.
Por exemplo, aqui está como usar o método Object.assign
para copiar as propriedades de um objeto de configuração para um objeto de usuário:
const config = { name: "João", age: 30 }; const user = Object.assign({}, config); console.log(user.name); // "João" console.log(user.age); // 30
Use o método Object.getPrototypeOf
para obter o protótipo de um objeto
O método Object.getPrototypeOf
permite que você obtenha o protótipo de um objeto.
Isso é útil para descobrir de onde um objeto herda as suas propriedades e métodos.
Por exemplo, aqui está como usar o método Object.getPrototypeOf
para obter o protótipo de um objeto de usuário:
const user = Object.create(person); const prototype = Object.getPrototypeOf(user); console.log(prototype === person); // true
Use o método Object.setPrototypeOf
para definir o protótipo de um objeto
O método Object.setPrototypeOf
permite que você defina o protótipo de um objeto.
Isso é útil quando você quer mudar de onde um objeto herda as suas propriedades e métodos.
Por exemplo, aqui está como usar o método Object.setPrototypeOf
para definir o protótipo de um objeto de usuário:
const user = { name: "João" }; const prototype = { age: 30 }; Object.setPrototypeOf(user, prototype); console.log(user.age); // 30
Essas são apenas algumas dicas básicas para entender e usar o JavaScript orientado a objetos.
Existem muitas outras coisas que você pode fazer com essa funcionalidade, como sobrescrever métodos herdados ou usar a palavra-chave static
para criar métodos e propriedades estáticas.
No entanto, seguir essas dicas já deve lhe dar uma boa base para trabalhar com objetos em seu código.
Projeto com Orientação a Objetos
Aqui está um pequeno projeto orientado a objetos em JavaScript que cria uma aplicação de gerenciamento de tarefas.
O projeto consiste em duas classes: Task
e TaskList
. A classe Task
representa uma única tarefa e a classe TaskList
representa uma lista de tarefas.
class Task { constructor(title, dueDate) { this.title = title; this.dueDate = dueDate; this.completed = false; } toggleCompleted() { this.completed = !this.completed; } } class TaskList { constructor() { this.tasks = []; } addTask(task) { this.tasks.push(task); } removeTask(task) { this.tasks = this.tasks.filter(t => t !== task); } toggleTaskCompleted(task) { const taskToToggle = this.tasks.find(t => t === task); taskToToggle.toggleCompleted(); } } const task1 = new Task("Comprar leite", "Hoje"); const task2 = new Task("Lavar carro", "Amanhã"); const task3 = new Task("Terminar relatório", "Quinta-feira"); const taskList = new TaskList(); taskList.addTask(task1); taskList.addTask(task2); taskList.addTask(task3); console.log(taskList.tasks);
Deixe um comentário contando o que achou deste artigo 🙂
Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:
Conclusão
Neste artigo você conferiu uma introdução a JavaScript Orientado a Objetos
Com estes conceitos já é possível programar no paradigma de POO 🙂
Lembre-se de importá-lo e também acessar o elemento pela propriedade current
Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.
Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!
Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!