Héritage différentiel en JavaScript

Introduction

L'jhéritage différentiel est un concept de programmation orienté prototypes qui repose sur le concept que la plupart des objets dérivent d'objets plus génériques et ne diffèrent que sur quelques aspects mineurs. Chaque objet maintient une référence vers le prototype et un tableau des propriétés qui sont différentes.

Exemple

Le code suivant fournit une méthode simple pour hériter (avec l'héritage différentiel) d'un objet :

Object.prototype.inherit = function(){
  // On crée un nouvel objet avec this comme prototype
  var p = Object.create(this);
  return p;
};

Grâce à la fonction inherit() ainsi créé, il devient plus simple de dériver des objets d'un prototype générique. Le fragment de code suivant illustre comment construire des objets de plus en plus spécifiques en utilisant la méthode inherit et l'héritage différentiel.

var racine = {}; // Ce pourrait être n'importe quel objet avec un prototype

var enregistrement = racine.inherit();
enregistrement.toString = function(){ return "un enregistrement"; };
 
var personne = racine.inherit();
personne.prenom = false;
personne.nom = false;
personne.toString = function(){ 
    return this.prenom ?
               (this.nom ?
                   this.prenom + " " + this.nom :
                   this.prenom) :
               (this.nom ?
                   this.nom :
                   "une personne");
};
 
personneJean = personne.inherit();
personneJean.prenom = "Jean";
console.log(personneJean.toString());

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,