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 Cercle, comme suit :

function Cercle(rayon) {
	this.rayon = rayon;
}

2

Définissez la méthode aire de l'objet Cercle. La méthode aire calcule l'aire du cercle. Vous pouvez utiliser un littéral de fonction pour définir la méthode aire et affecter la propriété aire à l'objet prototype du cercle, comme suit :

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 aire du nouvel objet monCercle, comme suit :

var aireDeMonCercle= monCercle.aire()

ActionScript cherche l'objet monCercle pour la méthode aire. L'objet ne possédant pas de méthode aire, son objet prototype Cercle.prototype est recherché pour la méthode aire. ActionScript la trouve et l'appelle.