JavaScript: Aprendendo o Prototipo em Orientação a Objetos

Compreendendo os protótipos em JavaScript pode ser complexo se não tivermos uma abordagem adequada. No entanto, com a strangeira paciência, podemos desvendar esse fundamental conceito.

Conhecimentos Previos:

Se você está aqui, hopefully, você já tem uma base básica em JavaScript. Caso contrário, leia brevemente sobre as operações básicas como a criação de variáveis, operadores e estruturas de controle. Agora, vamos avançar.

PDF Um dos conceitos mais confusos é a diferença entre function, prototipo e instantiation. Em JavaScript, não existem classes no sentido convencional. Tudo é baseado no prototipo, ou seja, tudo é objeto. Isso inclui funções, arrays, números inteiros, etc. Isso pode parecer surpreendente, mas é fundamental para entender o funcionamento do JavaScript.

PDF Outro ponto crucial é a palavra-chave prototipo. O prototipo é uma propriedade que cada objeto tem, que armazena os protótipos dos objetos criados com ele. Isso permite que os objetos heracam as características de outros objetos semelhantes.

PDF A palavra-chave instantiation é usada para criar um novo objeto. No JavaScript, a criação de um objeto não é simplesmente new, mas envolve a ideia de protótipos.

Em suma, o JavaScript é baseado no conceito de protótipos em orientação a objetos. Isso significa que todos os objetos são criados com um protótipo base, que pode conter métodos e propriedades que serão heradas por todos os objetos criados com ele. Isso é conhecido como herança prototipingo. Para ilustrar, considere o seguinte exemplo:

const numbers = [1, 2, 3]; // Array tem um prototipo
const evenNumbers = numbersInstantiator(numbers); // Cria um novo objeto com o prototipo da array

console.log(evenNumbers[1]); // Imprime 2
console.log(evenNumbers[2]); // Imprime 4
console.log(evenNumbers[3]); // Imprime 6

Observando o código acima, vemos que o evenNumbers é um novo objeto criado com o prototipo da array. Isso significa que ele hera todas as características da array, como o acesso por índice e a adição de elementos. Outro exemplo:

const objA = { name: 'A', value: 1 };
const objB = new Object({ name: 'B', value: 2 });

Em硅 unintuitive, objB não tem um prototipo direto em objA. No lugar, objB tem um prototipo direto no objeto Object, que é a base do JavaScript. Isso é por que todos os objetos em JavaScript heram do prototipo do Object, inclusive os objetos primitivos como números e strings. Para compreender melhor, vamos olhar para a definição formal do prototipo em JavaScript. O prototipo de um objeto é armazenado na propriedade prototype desse objeto. Isso permite que métodos e propriedades sejam heradas de forma dinâmica. Uma das vantagens do prototipingo em JavaScript é que ele é dinâmico. Isso significa que não é necessário definir as classes de antemano, como em outros languages de programação orientados a objetos. Além disso, o prototipingo em JavaScript permite que múltiplos objetos heram as mesmas características sem a necessidade de se definirem individualmente. Isso é especialmente útil para criação de componentes reutilizáveis em aplicativos web. Para finalizar, vamos ver como é possível alterar o prototipo de um objeto existente. Isso pode ser útil para adicionar ou remover métodos e propriedades em tempo de execução.

const obj = { name: 'World', capitalize: (value) => value.toUpperCase() };
obj.prototype.title = 'My Object';
console.log(obj.title); // Imprime 'My Object'

Observamos que obj.prototype.title é um método que pode ser chamado para transformar o nome do objeto em título. Isso é uma forma simples de adicionar funcionalidade adicional a um objeto existente. Conclusão:

  • O JavaScript é baseado no conceito de prototipingo em orientação a objetos.
  • Todos os objetos heram do prototipo do objeto Object, inclusive os objetos primitivos.
  • O prototipo de um objeto armazena os protótipos dos objetos criados com ele.
  • O prototipingo é uma forma de herança dinâmica que permite a adição e a remoção de métodos e propriedades em tempo de execução.

Practique este conceito com os exemplos fornecidos e pratique criar objetos personalizados com protótipos personalizados para melhorar suas habilidades em JavaScript.

Tags: javascript Prototipo O O Herança JavaScript Basics

Publicado em 8-18 19:35