DEV Community

Cover image for Orientação a objetos e o "Principio da Objetificação"
João Lucas Farias
João Lucas Farias

Posted on • Updated on

Orientação a objetos e o "Principio da Objetificação"

Muitas pessoas erroneamente atribuem ao JavaScript o paradigma de orientação a objetos e nesse artigo eu quero tentar elucidar essa questão.

A orientação a objetos é um paradigma de programação — classificação de uma linguagem baseado em suas funcionalidades, seu modelo de execução ou organização do código — criado na década de 1950 que utiliza dois conceitos basilares:

  • Classes: Representação abstrata de um objeto real ou não contendo o conjunto de estados (dados) e as possíveis ações (métodos) disponíveis do objeto.
  • Objetos: alocação na memória durante a execução do programa que pode ter seus estados modificados e/ou utilizados dentro do escopo de criação.

Numa linguagem de programação orientada a objetos, há a criação das classes primariamente e, após isso, a criação dos objetos e para isso dá-se o nome de linguagem baseada em classes. Quando não há classes e os objetos já existem, chamamos de linguagem baseada em protótipos, pois todos os objetos serão baseados em objetos pré-existentes (os chamados protótipos).

Na especificação ECMAScript 2015, mais conhecida como ECMAScript 6, houve a adição de sintaxe para a criação classes, porém as classes no JavaScript são apenas funções que usam o modelo de herança de protótipos que já era usada antes da especificação, ou seja, não é a adição de orientação a objetos na linguagem, mas sim de uma facilidade para leitura por outros desenvolvedores(as).

Falar que o JavaScript é baseado em protótipo não representa a realidade, pois o protótipo é, em suma, um objeto que serve de base para a criação de outro objeto. Para que uma coisa seja base para outra, a primeira precisa existir de antemão, o que não é o caso no JavaScript.

No JavaScript, não existe uma base existente, mas sim um princípio de ação que é a ação de transformar qualquer dado num objeto — um conceito abstrato generalista de representação dos dados — para que se possa manipular seus estados. Desse modo, qualquer dado só poderá ser "entendido" pelo JavaScript se transformado em um objeto.

Porém, esse princípio não possui ainda um nome e, desse modo, não há uma forma acertada o suficiente de classificar o JavaScript.

Portanto, eu gostaria de propor o nome Princípio da Objetificação, pois, dessa forma, se garante o entendimento de que o JavaScript têm todos os dados, em primeiro lugar, como objetos.

Top comments (2)

Collapse
 
vinicius73 profile image
Vinicius Reis

Um ponto de vista muito interessante, está muito alinhado a forma como penso JavaScript.

Obrigado por compartilhar.

Collapse
 
jonathanccardoso profile image
Jonathan Cardoso

Muito bom o artigo!