Le langage ActionScript > A propos des objets personnalisés > Affectation de méthodes à un objet personnalisé |
![]() ![]() ![]() |
Affectation de méthodes à un objet personnalisé
Vous pouvez définir les méthodes d'un objet dans la fonction constructeur de ce dernier. Toutefois, cette technique n'est pas conseillée, car elle définit la méthode à chaque fois que vous utilisez la fonction constructeur, comme dans l'exemple suivant, qui crée les méthodes aire
et diamètre
:
function Cercle(rayon) { this.rayon = rayon; this.aire = Math.PI * rayon * rayon; this.diamètre = function() {return 2 * this.rayon;} }
Chaque fonction constructeur a une propriété prototype
qui est créée automatiquement en même temps que la fonction. La propriété prototype
indique les valeurs de propriétés par défaut des objets créés avec cette fonction. Chaque nouvelle occurrence d'un objet possède une propriété __proto__
, qui fait référence à la propriété prototype
de la fonction constructeur qui a servi à la créer. Par conséquent, si vous affectez des méthodes à la propriété prototype
d'un objet, elles sont disponibles pour toute nouvelle occurrence de cet objet. Il est préférable d'affecter une méthode à la propriété prototype
de la fonction constructeur, car elle existe à un seul endroit et est prise en référence par les nouvelles occurrences de l'objet (ou de la classe). Vous pouvez utiliser les propriétés prototype
et __proto__
pour étendre des objets, ce qui permet de réutiliser du code selon une méthode orientée objet. Pour plus d'informations, consultez Création d'héritage.
La procédure suivante explique comment affecter une méthode aire
à un objet Cercle personnalisé.
Pour affecter une méthode à un objet personnalisé :
1 |
Définissez la fonction constructeur |
function Cercle(rayon) { this.rayon = rayon; } |
|
2 |
Définissez la méthode |
Cercle.prototype.aire = function () { return Math.PI * this.rayon * this.rayon; }; |
|
3 |
Créez une occurrence de l'objet Cercle comme suit : |
var monCercle = new Cercle(4); |
|
4 |
Appelez la méthode |
var aireDeMonCercle= monCercle.aire() |
|
![]() |
ActionScript cherche l'objet |
|
![]() |
![]() ![]() ![]() |