Salut a tous,

Jusqu'a aujourd'hui, j'utilise cette maniére pour déclarer une class en javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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