[POO] Bonne maniére: Class et heritage en javascript
Salut a tous,
Jusqu'a aujourd'hui, j'utilise cette maniére pour déclarer une class en javascript:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function MaClasse(aId)
{
console.debug('constructeur');
this.id = aId;
...
...
}
MaClasse.prototype.init = function()
{ .... }
MaClasse.prototype.doChange = function()
{ .... } |
Pour déclarer une classe qui herite de MaClasse je fait ca:
Code:
1 2 3 4 5 6 7 8 9 10
| function Enfant(aId)
{
MaClasse.call(this,aId); //appel du constructeur du parent
...
...
}
Enfant.prototype = new MaClasse();
Enfant.prototype.doChange = function()
{ /*surcharge*/ } |
Bon ca marche bien, je n'ai pas a m'en plaindre...
Mais je remarque (grace a mon console.debug)
que Enfant.prototype = new MaClasse(); cree un objet MaClasse,
et cela meme si je ne cree pas d'objet Enfant dans mes scripts !
Donc j'execute du code inutilement. Surtout que j'utilise assez intensivement les heritages.
Donc je me posais la question suivante :
Ne serait il pas plus judicieux de faire
Code:
1 2 3 4 5 6 7 8
| function Enfant(aId)
{
MaClasse.call(this,aId); //appel du constructeur du parent
...
...
}
Enfant.prototype = MaClasse.prototype; |
Merci de me donner votre avis ou de m'indiquer une autre facon de faire plus elegante.
A+ Thierry