𝗢𝗯𝗷𝗲𝗰𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Los constructores de JavaScript te ayudan a crear objetos de manera eficiente. Puedes usarlos para crear muchos objetos con la misma estructura.
Funciones constructoras
Un constructor es una función para inicializar objetos. Usa la palabra clave new para llamarlo. Si olvidas la palabra clave new, la función no funcionará como se espera.
Comienza siempre los nombres de los constructores con una letra mayúscula. Esto te ayuda a distinguirlos de las funciones regulares.
Ejemplo:
- Person(name, age)
Object.create()
Puedes usar Object.create() para crear un nuevo objeto utilizando un objeto existente como prototipo. Este método establece la herencia entre objetos.
Valores por defecto
Puedes establecer valores por defecto en tu constructor. Esto asegura que tus objetos siempre tengan datos válidos. Si no proporcionas un valor, el constructor utilizará el valor por defecto.
Ejemplo: function Person(name = "Unknown", age = 0) { this.name = name; this.age = age; }
Prototipos y memoria
Agregar métodos a un prototipo ahorra memoria. En lugar de que cada objeto tenga su propia copia de una función, todos comparten una versión del prototipo.
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() para llamar al constructor de la clase padre. Esto permite que las clases hijas utilicen propiedades y métodos de las clases padre.
¿Por qué usar constructores?
- Reutilización: Crea muchos objetos a partir de una plantilla.
- Organización: Mantén la lógica de configuración de los objetos en un solo lugar.
- Inicialización: Establece valores específicos inmediatamente durante la creación.
- Herencia: Construye objetos complejos a partir de otros más simples.
- Mantenimiento: Hace que tu código sea más fácil de leer y gestionar.
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