Clases en JavaScript
Las clases son moldes para crear objetos. Si los objetos son casas, las clases son los planos arquitectónicos. Defines la estructura una vez (propiedades, métodos) y puedes crear todas las instancias que necesites con new. Cada instancia es independiente: modificar una no afecta las demás.
El constructor es el método especial que se ejecuta automáticamente cuando creas una instancia con new. Ahí inicializas las propiedades del objeto usando this, que hace referencia a la instancia actual. Los métodos definidos en la clase son compartidos por todas las instancias, lo que es eficiente en memoria.
Aunque JavaScript tiene clases desde ES6, por dentro sigue usando el sistema de prototipos, que es diferente a lenguajes como Java o C#. Las clases de JavaScript son conveniencia sintáctica sobre ese sistema. Es importante entender esto para no llevarse sorpresas con comportamientos como el de this.
class Animal {
// Constructor: se ejecuta al crear instancia
constructor(nombre, especie) {
this.nombre = nombre;
this.especie = especie;
this.energia = 100;
}
// Método de instancia
comer(alimento) {
this.energia += 20;
return `${this.nombre} come ${alimento}`;
}
// Getter
get descripcion() {
return `${this.nombre} es un ${this.especie}`;
}
// Método estático (no necesita instancia)
static crear(nombre, especie) {
return new Animal(nombre, especie);
}
}
// Crear instancias
const perro = new Animal("Rex", "perro");
const gato = Animal.crear("Michi", "gato");
console.log(perro.nombre); // "Rex"
console.log(perro.comer("croquetas")); // "Rex come croquetas"
console.log(perro.descripcion); // "Rex es un perro"
Practica esta lección
Resuelve los ejercicios del curso de JavaScript en la app, gratis y con corrección automática.
Empezar a practicar