Héritage

L’héritage comme nous le connaissons dans le C++ ou le Java n’est pas implémenté dans le langage Javascript. Il est à noter que dans des versions futures de Javascript cette notion sera présente, certainement à travers les mot clé déjà réservé extends et implements. En attendant sont implémentation native, le développeur peut utilisé le modèle suivant pour effectuer un héritage.

Exemple :

//classe mère 
function People(name)
{
	this.name=name;
	this.showName = function(){return ""+this.name+""};
}
// 1 classe fille
function Client(name,compte ) //extends Client
{		
	this.superClass=People;		//
	this.superClass(name);		// L’heritage
	delete this.superclass;		//

	// propriétés propres à l'objet
	this.compte =compte;
	this.showCompte = function (){return this.compte};
}
//1 autre classe fille
function Fournisseur(name, entrepot) 
{
	this.superClass=People;			//
	this.superClass(name);			// L’héritage
	delete this.superclass;			//
	
	// on redéfini la fonction showName de la classe mère
	this.showName=function (){return ""+this.name+""}; 

//propriétés propres à l'objet
	this.entrepot =entrepot;
	this.showEntrepot = function (){return this.entrepot};
}

Utilisation

var monCli = new Client("Carrefour","CPT0102021" )
var monFour= new Fournisseur("Bonduelle","Entrepot Paris 1" )
	
document.write("
monCli.showName(): " + monCli.showName()); document.write("
monFour.showName(): " + monFour.showName()); document.write("
monCli.showCompte(): " + monCli.showCompte()); document.write("
monFour.showEntrepot(): " + monFour.showEntrepot());

Résultat

monCli.showName(): Carrefour
monFour.showName(): Bonduelle
monCli.showCompte(): CPT0102021
monFour.showEntrepot(): Entrepot Paris 1
Il est donc possible grâce à cette méthode qu’un objet déclare lui-même qu’il hérite d’une classe mère. Il peut ainsi définir ses fonctions et propriétés spécifiques et redéfinir des fonctions de la classe mère.