JavaScript ofrece muchas posibilidades para la creación y manipulación de objetos. El uso tradicional de clases y prototipos es muy común, pero también hay enfoques alternativos que a menudo son más flexibles y sencillos. Este tutorial te muestra cómo crear objetos efectivos en JavaScript sin el uso de clases. Nos basaremos en el enfoque de Douglas Crockford, que se centra en la creación de objetos basada en funciones y proporciona una perspectiva interesante sobre Es6 y las versiones posteriores.
Principales conclusiones
- Los objetos se pueden crear sin el uso de clases y this
- La creación de objetos basada en funciones permite estructuras de código más flexibles y legibles
- El destructuring de objetos hace que su manejo sea más efectivo y simple
Guía paso a paso para crear objetos sin clases
Comienza creando una función que devuelva un objeto. Puedes hacerlo utilizando una sintaxis básica de funciones.

En este ejemplo, definimos una función createShape. En esta función, generamos un nuevo objeto que tiene diferentes propiedades, como id, x y y. También puedes agregar más métodos para ampliar la funcionalidad del objeto.
Asegúrate de pasar los parámetros que definen el objeto a la función. Así podrás crear una instancia del objeto con atributos específicos.
Para hacer que el objeto sea útil, también puedes definir métodos que estén integrados en el objeto. Por ejemplo, podrías agregar un método print que imprima las propiedades del objeto.

Aquí amplías la función createShape con el método print. Asegúrate de implementar el método correctamente para garantizar que pueda referenciar las propiedades del objeto.
Otro elemento es la implementación de un método move. Este método puede ser utilizado para cambiar las coordenadas x e y del objeto. No olvides nombrar los parámetros de manera que sean claros para evitar confusiones.
También puedes usar funciones para el destructuring de objetos. En lugar de pasar los parámetros individualmente, simplemente pasa un objeto y utiliza destructuring para extraer las propiedades.
Esta técnica no solo hace tu código más legible, sino también más flexible. Puedes agregar fácilmente nuevos parámetros y eliminar parcialmente los existentes sin tener que reescribir toda la funcionalidad.
Si consideras integrar otras funciones, podrías definir una segunda función createBaseShape que implemente algunos comportamientos básicos y que sea llamada desde el primer objeto.
Screenshot_目330
Con el enfoque posterior, puedes acceder a printBase u otras funciones y utilizarlas sin necesidad de usar this o algo similar.
Como última mejora, puedes congelar el objeto para asegurarte de que sus propiedades no puedan ser modificadas después de su creación. Esto se logra mediante el uso del método Object.freeze().
Estas técnicas ilustran que hay muchas maneras de crear y gestionar objetos en JavaScript sin recurrir al modelo de clases.
Resumen - Objetos sin clases en JavaScript
En este tutorial, has aprendido cómo puedes crear objetos de manera efectiva en JavaScript sin clases. El enfoque de la creación de objetos basada en funciones te proporciona mucha flexibilidad y control. A través de varios métodos como destructuring y Object.freeze, tienes la oportunidad de desarrollar estructuras robustas y mantenibles que benefician tu código.
Preguntas frecuentes
¿Cómo creo un objeto en JavaScript sin clases?Puedes definir una función que genere y devuelva un nuevo objeto.
¿Cuáles son las ventajas de la creación de objetos basada en funciones?Permite un manejo más flexible de los objetos, extensiones sencillas mediante destructuring y previene modificaciones no deseadas a través de Object.freeze.
¿Puedo definir métodos en funciones de creación de objetos?Sí, puedes generar métodos directamente en la función de retorno del objeto.
¿Reemplaza este enfoque por completo al modelo de clases tradicional?Es un método alternativo que puede ser más útil en muchos casos específicos, pero no pretende reemplazar completamente las clases.