Article image
Lucas Cunha
Lucas Cunha21/05/2024 15:09
Compartilhe

Entendendo as diferenças entre Código Procedural e Orientado a Objetos em JavaScript (ou TypeScript)

    Quando falamos sobre JavaScript (JS) ou TypeScript (TS), as diferenças entre código procedural e orientado a objetos ainda são fundamentais, embora a linguagem seja conhecida principalmente por seu suporte a paradigmas de programação orientada a objetos. Vamos explorar esses conceitos com exemplos em JavaScript/TypeScript. 🚀

    No JavaScript procedural, o foco está nas funções e na manipulação direta dos dados. O código é escrito em uma série de instruções que são executadas sequencialmente.

    Exemplo de código procedural em JavaScript:

    // Função para calcular a área de um retângulo
    function calcularAreaRetangulo(base, altura) {
    return base * altura;
    }
    
    // Chamada da função para calcular a área de um retângulo
    let baseRetangulo = 5;
    let alturaRetangulo = 3;
    let areaRetangulo = calcularAreaRetangulo(baseRetangulo, alturaRetangulo);
    console.log("A área do retângulo é:", areaRetangulo);
    

    Exemplo de código orientado a objetos em JavaScript (ou TypeScript):

    // Definição da classe Retangulo
    class Retangulo {
      constructor(base, altura) {
          this.base = base;
          this.altura = altura;
      }
    
    
      calcularArea() {
          return this.base * this.altura;
      }
    }
    
    
    // Criando uma instância da classe Retangulo
    let meuRetangulo = new Retangulo(5, 3);
    
    
    // Chamando o método para calcular a área do retângulo
    let areaDoRetangulo = meuRetangulo.calcularArea();
    console.log("A área do retângulo é:", areaDoRetangulo);
    

    Diferenças principais:

    Abstração: No código procedural, as funções e os dados estão separados, enquanto no orientado a objetos, eles são agrupados em objetos. 🧩

    Reutilização de Código: O paradigma orientado a objetos facilita a reutilização de código através de herança e composição, enquanto o procedural pode exigir mais esforço para alcançar a mesma reutilização. 🔁

    Encapsulamento: No código orientado a objetos, as propriedades e métodos estão encapsulados dentro de objetos, o que ajuda a evitar interferências externas e facilita a manutenção. 🔒

    Herança e Polimorfismo: Esses conceitos são mais facilmente aplicáveis em código orientado a objetos, permitindo uma estrutura mais flexível e escalável. 🌱

    Em conclusão, JavaScript (e TypeScript) oferecem suporte tanto para programação procedural quanto para orientada a objetos. A escolha entre os dois paradigmas depende das necessidades específicas do projeto e das preferências do desenvolvedor. 🛠️

    Compartilhe
    Comentários (0)