Voir aussi : Partie 1 (Classes & Objets) Partie 2 (Définitons) Catalogue de prototypes Notions d'héritage Une occurence accède aux propriétés et aux méthodes de la classe à partir de laquelle elle est définie. Si la classe parent de cette occurence est elle même une occurence d'une autre classe, la première occurence hérite dans un premier temps des propriétés et occurence de la classe mère puis de la classe à partir de la quelle elle est définie. Si des méthodes ou propriétés sont redéfinies dans la classe enfant ou même dans l'objet lui même, ce sont elles qui seront prises en compte lors de leur execution ou utilisation. Exemple: monNombre= new Number(); monNombre accède aux méthodes et propriétés de la classe Number et hérite des méthodes et propriétés de la classe Object (qui est une classe mère de la classe Number Exemples multiples L'exemple ci-dessous peut-être copié collé tel quel dans le panneau AS : Object.prototype.fonctionObj= function() { trace("je suis une méthode de Object"); } clasA= function () { this._maClasse="clasA"; }; clasB= function () { this._maClasse="clasB"; }; clasC= function () { this._maClasse="clasC"; }; clasC.prototype=new clasB(); clasA.prototype.fonctionA= function() { trace ("je suis une méthode de clasA"); } clasB.prototype.fonctionB= function() { trace ("je suis une méthode de clasB"); } clasC.prototype.fonctionC= function() { trace ("je suis une méthode de clasC"); } occuA = new clasA(); occuC = new clasC(); occuC.fctOccu = function() { trace("je suis une méthode de l'occurence occuC") } occuC.fctOccu(); // renvoie "je suis une méthode de l'occurence occuC" occuC.fonctionC(); // renvoie "je suis une méthode de clasC" occuC.fonctionB(); // renvoie "je suis une méthode de clasB" occuC.fonctionObj(); // renvoie "je suis une méthode de Object" occuC.fonctionA(); // ne renvoie rien trace("======================"); occuA.fctOccu(); // ne renvoie rien occuA.fonctionC(); // ne renvoie rien occuA.fonctionB(); // ne renvoie rien occuA.fonctionA(); // renvoie "je suis une méthode de clasA" occuC.fonctionObj(); // renvoie "je suis une méthode de Object" Object.prototype.heritage= function () { trace ("méthode de Object"); } trace("======================"); occuC.heritage(); // renvoie "méthode de Object" clasB.prototype.heritage= function () { trace ("méthode de clasB"); } trace("======================"); occuC.heritage(); // renvoie "méthode de clasB" trace("======================"); ) occuC.__proto__=clasA.prototype; occuC.fctOccu(); // renvoie "je suis une méthode de l'occurence occuC" occuC.fonctionC(); // ne renvoie rien occuC.fonctionB(); // ne renvoie rien occuC.fonctionA(); // renvoie "je suis une méthode de clasA" occuC.fonctionObj(); // renvoie "je suis une méthode de Object"
|