JavaScript oferece muitas possibilidades para a criação e manipulação de objetos. O uso tradicional de classes e protótipos é bastante comum, mas existem também abordagens alternativas que muitas vezes são mais flexíveis e simples. Este tutorial mostra como você pode criar objetos eficazes em JavaScript sem o uso de classes. Vamos utilizar a abordagem de Douglas Crockford, que se baseia na criação de objetos por meio de funções e oferece uma perspectiva interessante sobre Es6 e as versões subsequentes.
Principais conclusões
- Objetos podem ser criados sem o uso de classes e this
- A criação de objetos baseada em funções permite estruturas de código mais flexíveis e legíveis
- Através da desestruturação de objetos, o manuseio se torna mais eficaz e simples
Guia passo a passo para criação de objetos sem classes
Comece criando uma função que retorna um objeto. Você pode fazer isso usando uma sintaxe de função básica.

Neste exemplo, definimos uma função createShape. Nesta função, criamos um novo objeto que possui várias propriedades, como id, x e y. Você também pode adicionar mais métodos para expandir a funcionalidade do objeto.
Certifique-se de passar os parâmetros que definem o objeto para a função. Isso permite que você crie uma instância do objeto com atributos específicos.
Para tornar o objeto útil, você também pode definir métodos que estão integrados ao objeto. Por exemplo, você poderia adicionar um método print que exibe as propriedades do objeto.

Aqui você expande a função createShape com o método print. Certifique-se de implementar o método corretamente para garantir que ele possa referenciar as propriedades do objeto.
Outro elemento é a implementação de um método move. Este método pode ser usado para alterar as coordenadas x e y do objeto. Não se esqueça de nomear os parâmetros de forma clara para evitar confusões.
Você também pode usar funções para desestruturar objetos. Em vez de passar parâmetros individualmente, passe simplesmente um objeto e use a desestruturação para extrair as propriedades.
Essa técnica não apenas torna seu código mais legível, mas também mais flexível. Você pode simples adicionar novos parâmetros e remover parcialmente parâmetros existentes sem precisar reescrever toda a funcionalidade.
Se você considerar integrar outras funções, pode definir uma segunda função createBaseShape que implementa alguns comportamentos básicos e é chamada pelo primeiro objeto.
Screenshot_目330
Com a abordagem avançada, você pode acessar e usar tanto o printBase quanto outras funções, sem precisar usar this ou algo semelhante.
Como última melhoria, você pode congelar o objeto para garantir que suas propriedades não possam ser alteradas após a criação. Isso é feito usando o método Object.freeze().
Essas técnicas demonstram que existem muitas maneiras de criar e gerenciar objetos em JavaScript, sem recorrer ao modelo de classes.
Resumo – Objetos sem classes em JavaScript
Neste tutorial, você aprendeu como criar objetos em JavaScript de forma eficaz sem classes. A abordagem de criação de objetos baseada em funções oferece muita flexibilidade e controle. Com diferentes métodos como desestruturação e Object.freeze, você tem a oportunidade de desenvolver estruturas robustas e de fácil manutenção que beneficiam seu código.
Perguntas frequentes
Como crio um objeto em JavaScript sem classes?Você pode definir uma função que cria e retorna um novo objeto.
Quais são as vantagens da criação de objetos baseada em funções?Ela permite um manuseio mais flexível dos objetos, extensões simples por meio de desestruturação e evita modificações indesejadas com Object.freeze.
Posso definir métodos em funções que criam objetos?Sim, você pode criar métodos diretamente na função de retorno do objeto.
Esse método substitui completamente o modelo de classes tradicional?É uma alternativa que pode ser mais útil em muitos casos específicos, mas não reivindica substituir completamente as classes.