
Actualización del 10 de enero de 2023Si buscas un tutorial de JavaScript que cubra también las clases, quizá te interese mi nuevo tutorial de JavaScript.
Definir una clase
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Para declarar una clase se usa la palabra clave class seguida del nombre de la clase (aquí Rectangle).
Constructor: es el método especial que inicializa una instancia de la clase. Es decir, cada vez que creas una instancia nueva se ejecuta el constructor.
Métodos de una clase
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
// Méthode prototype
area() {
return console.log(`La zone est ${this.height*this.width}`);
}
// Méthode statique
static display(rect){
return console.log(`Height: ${rect.height} Width: ${rect.width}`);
}
}
const rectangle = new Rectangle(5, 4); // Instancier la classe
rectangle.area();
// La zone est 20
Rectangle.display(rectangle);
// Height: 5 Width: 4
- Método de prototipo:
area()es un método de prototipo. - Método estático:
display()es un método estático.
Método de prototipo
Un método de prototipo solo está disponible cuando creas una instancia de la clase. Como ves en el ejemplo anterior, se llama (línea 17) escribiendo el nombre del método sobre el objeto, seguido de paréntesis (los parámetros, si los hay, van dentro).
Método estático
Un método estático se puede llamar sin instanciar la clase. Los métodos estáticos se definen sobre la clase misma, no sobre el objeto. Eso significa que no puedes llamar a un método estático sobre el objeto (rectangle), sino sobre la clase (Rectangle), como en la línea 19.
Herencia
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return 'c\'est ' + this.carname;
}
}
class Model extends Car {
constructor(brand, model) {
super(brand);
this.model = model;
}
show() {
return console.log(`${this.present()} ${this.model}`);
}
}
const mycar = new Model("Ford", "Mustang");
mycar.show();
// c'est Ford Mustang
Para crear una herencia de clase, usa la palabra clave extends. Con extends, la clase hija hereda de la clase padre.
Una clase creada con herencia recibe todos los métodos de la otra clase. En el ejemplo anterior, la clase Model hereda todos los métodos de la clase Car.
La llamada super() apunta a la clase padre. Al invocar super() dentro del constructor llamamos al constructor del padre y obtenemos acceso a sus propiedades y a sus métodos.
La herencia sirve para reutilizar código: al crear una clase nueva puedes aprovechar las propiedades y los métodos de una clase que ya existe.


