Constructores de objetos en JavaScript
Necesitas crear muchos objetos del mismo tipo. JavaScript ofrece varias formas de hacerlo de manera eficiente.
Funciones constructoras
Un constructor es una función que se utiliza para configurar nuevos objetos. Sigue estas reglas para evitar errores:
- Escribe la primera letra del nombre de la función en mayúscula. Esto te ayuda a identificarla como un constructor.
- Usa la palabra clave new. Si la olvidas, la función se ejecutará como una función normal y no logrará crear el objeto.
Valores por defecto
Puedes establecer valores por defecto en tu constructor. Esto garantiza que tus objetos sigan siendo válidos incluso si omites algunos detalles.
Ejemplo: function Person(name = "Unknown", age = 0) { this.name = name; this.age = age; }
Si llamas a new Person(), el nombre será "Unknown" y la edad será 0.
Object.create()
Puedes usar Object.create() para crear un nuevo objeto basado en uno existente. Esto utiliza la herencia basada en prototipos. En lugar de copiar datos, el nuevo objeto se vincula al prototipo original.
Optimización de memoria
No coloques métodos dentro del propio constructor. Si lo haces, cada nuevo objeto obtendrá su propia copia de ese método. Esto desperdicia memoria.
En su lugar, añade los métodos al prototipo. De esta manera, todos los objetos compartirán una única versión del método.
Ejemplo: Person.prototype.greet = function() { console.log("Hello " + this.name); };
Herencia
Las clases permiten que una clase herede de otra. Usa la palabra clave super() en una clase hija para llamar al constructor del padre. Esto permite que la clase hija acceda a las propiedades del padre.
Beneficios de usar constructores:
- Código reutilizable: Crea muchos objetos con un solo patrón.
- Lógica limpia: Mantén la configuración de los objetos en un solo lugar.
- Inicialización sencilla: Establece valores específicos durante la creación.
- Herencia: Construye objetos complejos a partir de otros más simples.
Fuente: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Fuente: https://www.w3schools.com/js/js_object_constructors.asp
Post completo: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96