Voir aussi : Partie 1 (Classes & Objets) Partie 3 (Héritage) Catalogue de prototypes Constructeur Le constructeur est la fonction qui est appelée lors de la définition d'un objet, et qui à ce moment reçoit pour valeur de this un objet vide créé par l'opérateur new, dont la propriété __proto__ pointe sur le prototype de la classe. Exemple : monNombre= new Number(20); // Number est le constructeur de la classe Number. constructor constructor est une propriété d'une occurence, pointant vers la fonction constructeur de l'occurence. On pourrais imaginer consulter cette propriété pour connaitre la fonction constructeur d'une occurence, voir modifier cette fonction, cependant les informations limitées fournies par Flash sont insuffisantes pour pratiquer ce genre d'opérations. Plus de précisions dans Flash 6 ? Héritage L'héritage est décrit en partie 3. New Opérateur qui permet de créer un nouvel objet. Il appelle la fonction identifiée par le constructeur, auquel sont passés les paramètres, puis passe l'objet nouvellement créé comme valeur du mot-clé this. La fonction constructeur peut alors utiliser this pour définir le nouvel objet. Exemple : monTexte= new String("et hop"); // new constructeur (paramètres) Propriétés Les propriétés sont l'ensemble des variables que possède chaque occurence de la classe et des classes qui héritent de cette classe. Exemple : Propriétés de la classe MovieClip : _x, _y, _xscale .... prototype prototype est une propriété de la classe, qui contient les propriétés et méthodes qui lui ont été ajoutées lors ou après sa définition. Méthodes Les méthodes sont l'ensemble des fonctions que peut utiliser chaque occurence de la classe et des classes qui héritent de cette classe. Exemple : méthodes de la classe Array: .split(), .join() ... __proto__ __proto__ est une propriété d'occurence qui est un pointeur vers le prototype de sa classe. On peut modifier __proto__ pour qu'il pointe vers le prototype d'une autre classe, dans ce cas la l'objet n'héritera plus des méthodes de l'ancienne classe mais de la nouvelle vers laquelle pointe maintenant __proto__. test1= function () {}; // création de classes vides juste pour l'exemple test2= function () {}; monObjet= new test1(); trace (monObjet.__proto__==test1.prototype); // renvoie true, le __proto__ pointe bien vers le prototype de la classe test1 monObjet.__proto__=test2.prototype; trace (monObjet.__proto__==test2.prototype); // renvoie true, le __proto__ pointe maintenant vers le prototype de la classe test2 trace (monObjet.__proto__==test1.prototype); // renvoie false, le __proto__ ne pointe plus vers le prototype de la classe test1
|