Clases en JavaScript
En JavaScript, las clases son una forma de definir plantillas para objetos. Permiten crear estructuras de objetos más fácilmente, con propiedades y métodos asociados. Las clases se introdujeron en ECMAScript 6 (ES6) y son una forma moderna de trabajar con la programación orientada a objetos en JavaScript.
¿Qué es una Clase?
Una clase es una plantilla para crear objetos. Se define una vez, y luego se pueden crear muchos objetos basados en esa plantilla. Cada objeto creado a partir de la clase puede tener propiedades y métodos que definen su comportamiento.
Sintaxis Básica de Clases
La sintaxis básica para crear una clase es la siguiente:
class Persona {
constructor(nombre, edad) {
this.nombre = nombre;
this.edad = edad;
}
saludar() {
console.log(`Hola, soy ${this.nombre} y tengo ${this.edad} años.`);
}
}
En este ejemplo, la clase Persona tiene un constructor, que es un método especial que se ejecuta cuando se crea un nuevo objeto a partir de la clase. El constructor toma dos parámetros: nombre y edad, que se asignan a las propiedades del objeto this.
Creando Objetos a partir de una Clase
Una vez que definimos la clase, podemos crear objetos a partir de ella utilizando la palabra clave new.
const persona1 = new Persona('Juan', 30);
persona1.saludar();
Aquí, estamos creando un nuevo objeto persona1 de la clase Persona, pasando los valores 'Juan' y 30 al constructor. Luego, llamamos al método saludar de ese objeto para mostrar un mensaje en la consola.
Métodos y Propiedades de las Clases
Las clases pueden tener tanto propiedades como métodos. Las propiedades son características del objeto, mientras que los métodos son funciones asociadas a la clase que definen el comportamiento del objeto.
class Coche {
constructor(marca, modelo) {
this.marca = marca;
this.modelo = modelo;
}
mostrarInformacion() {
console.log(`Coche: ${this.marca} ${this.modelo}`);
}
}
const coche1 = new Coche('Toyota', 'Corolla');
coche1.mostrarInformacion();
Herencia en Clases
Las clases también pueden heredar propiedades y métodos de otras clases. Esto se conoce como herencia y permite que una clase hija extienda la funcionalidad de una clase base. Esto se logra mediante la palabra clave extends.
class Animal {
constructor(nombre) {
this.nombre = nombre;
}
hacerSonido() {
console.log(`${this.nombre} hace un sonido.`);
}
}
class Perro extends Animal {
constructor(nombre, raza) {
super(nombre);
this.raza = raza;
}
hacerSonido() {
console.log(`${this.nombre} ladra.`);
}
}
const perro1 = new Perro('Rex', 'Labrador');
perro1.hacerSonido();
En este ejemplo, la clase Perro hereda de la clase Animal. Usamos super(nombre) para llamar al constructor de la clase base, y luego sobrecargamos el método hacerSonido para hacer que el perro ladre en lugar de hacer un sonido genérico.
Conclusión
Las clases en JavaScript proporcionan una forma estructurada y sencilla de trabajar con objetos. Permiten crear objetos con propiedades y métodos definidos, y también soportan conceptos como la herencia. Son especialmente útiles cuando tienes que trabajar con muchas instancias de objetos similares, ya que te permiten reutilizar el código de manera eficiente.