En essayant de créer une véritable classe abstraite en javascript, si vous essayez d'instancier une classe abstraite, elle génère une erreur. Le problème est, quand je fais cela, je ne peux pas créer de valeurs par défaut dans la classe abstraite. Voici mon code:Création d'une véritable classe abstraite en Javascript
class Abstract {
constructor() {
if (new.target === Abstract) {
throw new TypeError("Cannot create an instance of an abstract class");
}
}
get Num() { return {a: 1, b: 2} }
get NumTimesTen() { return this.Num.a * 10 }
}
class Derived extends Abstract {
constructor() {
super();
}
}
//const a = new Abstract(); // new.target is Abstract, so it throws
const b = new Derived(); // new.target is Derived, so no error
alert(b.Num.a) // this return 1
b.Num.a = b.Num.a + 1
alert(b.Num.a) // this also returns 1, but should return 2
alert(b.NumTimesTen) // this returns 10, but should return 20
Cela se produit parce que ma fonction get est Recréant que cet objet à chaque fois qu'il est appelé. Dans une classe functino, j'aurais utilisé this.Num, mais cela ne compile pas dans la syntaxe de la classe. Que devrais-je faire?