El orden de inicialización de las clases de JavaScript puede sorprender en algunas casos. Consideremos el siguiente código.
class Definicion {
nombre = "definicion";
constructor() {
console.log(`Mi nombre es ${this.nombre}`);
}
}
class Implementacion extends Definicion {}
const d = new Implementacion();
Salida.
Mi nombre es definicion
definicion
¿Cuál es el orden de la inicialización de las clases?
El orden de la inicialización de las clases es el siguiente.
- Los campos de la clase base son inicializados.
- El constructor de la clase base se ejecuta.
- Los campos de la clase derivada son inicializados.
- El constructor de la clase derivada se ejecuta.