Desde el año 2015 el estándar de Javascript nos ha dado lo que se conoce como azúcar sintáctico, podemos escribir clases, sin embargo esas clases las va a compilar Javascript a prototipos por detrás.
En este artículo vamos a simplificar lo que vimos en los 2 artículos anteriores. Las clases no reciben parámetros, tienen un método especial denominado constructor() que es el que va a recibir dichas propiedades. Aunque escribimos clases, es un engaño a nivel de sintaxis. Lo que simplifica las clases es la escritura de código.
Ejm
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Clases y Herencia</title>
</head>
<body>
<h1>Clases y Herencia</h1>
<script>
class Persona{
constructor(nombre, genero) {
this.nombre = nombre;
this.genero = genero;
}
hablar() {
console.log("Estoy hablando");
}
}
const francisco = new Persona("Francisco", "Chico");
console.log(francisco);
francisco.hablar();
// COMO HAGO LA HERENCIA
class Francisco extends Persona {
constructor(nombre, genero, edad) {
super(nombre, genero);
this.edad = edad;
}
hablar() {
console.log("Mi nombre es Francisco");
}
caminar() {
console.log("Estoy caminando");
}
}
const francisco = new Francisco("Francisco", "Macho", 51);
console.log(francisco);
francisco.hablar();
</script>
</body>
</html>
Podemos ver como con clases se simplifica la escritura de las funciones prototípicas.