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 29 30 31 32 33 34 35 36 37 38 39
| // Classe mère
function classeMere() {
this.name = 'Clase mère';
if ( typeof classeMere.initialized == "undefined" ) {
classeMere.prototype.methodeA = function() {
// code
alert(this.name);
}
classeMere.initialized = true ;
}
}
function classeFilleExtendsMere() {
classeMere.call(this); // Cf Héritage par le constructeur de la classe mère
this.name = 'Clase Fille';
if ( typeof classeFilleExtendsMere.initialized == "undefined" ) {
// Recopie des éléments au moyen d'une simple boucle
for (var element in classeMere.prototype ) {
classeFilleExtendsMere.prototype[element] = classeMere.prototype[element]
}
classeFilleExtendsMere.prototype.parent= classeMere.prototype;
classeFilleExtendsMere.prototype.methodeA = function() {
this.parent.methodeA();
console.log('hello');
}
// Ajout d'une nouvelle méthode
classeFilleExtendsMere.prototype.methodeB = function() {
// code
}
classeFilleExtendsMere.initialized = true;
}
}
var newMere = new classeMere();
newMere.methodeA();
var newObjet = new classeFilleExtendsMere();
newObjet.methodeA(); |