javascript orienté objet: bonne pratique et héritage
Bonjour à tous, je suis actuellement le tuto de Thierry Templier sur la POO en javascript et j'ai une question concernant la partie 2. Ayant besoin de mettre en pratique une "objectisation" de gros code JS je voulais créer des classes héritées pour factoriser du code redondant. J'en suis donc arrivé à retenir la dernière solution proposée avant la partie héritage multiple à savoir:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
function MaClasseMere(parametre1, parametre2) {
this.attribut1 = parametre1;
this.attribut2 = parametre2;
}
MaClasseMere.prototype = {
methode: function() {
alert("[methode] Attributs: " + this.attribut1 + ", " + this.attribut2);
}
}
function MaClasse(parametre1, parametre2, parametre3) {
MaClasseMere.call(this, parametre1, parametre2);
this.attribut3 = parametre3;
}
MaClasse.prototype = {
uneMethode: function() {
alert("[uneMethode] Attributs: " + this.attribut1
+ ", " + this.attribut2 + ", " + this.attribut3);
}
};
heriter(MaClasse.prototype, MaClasseMere.prototype);
var obj = new MaClasse("parametre1", "parametre2", "parametre3");
obj.methode();
... |
seulement voilà, j'ai peur qu'en faisant ainsi les méthodes de la classes mère écrasent les méthodes du même nom de la classe fille rendant par la même les surcharges des méthodes de la classe fille inopérantes. Serait-il plus opportun d’affecter en premier l'héritage comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
function MaClasse(parametre1, parametre2, parametre3) {
MaClasseMere.call(this, parametre1, parametre2);
this.attribut3 = parametre3;
}
heriter(MaClasse.prototype, MaClasseMere.prototype);
MaClasse.prototype = {
uneMethode: function() {
alert("[uneMethode] Attributs: " + this.attribut1
+ ", " + this.attribut2 + ", " + this.attribut3);
}
}; |
Merci pour votre aide !