Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1923 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  c'est quoi prototype ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

c'est quoi prototype ?

n°834753
Nermal
Mooonnn prééécieuuxx!
Posté le 27-08-2004 à 22:57:41  profilanswer
 

Dans un code source d'un jeu basé sur des tiles:
 
game.Tile0 = function () { };
game.Tile0.prototype.walkable = true;
game.Tile0.prototype.frame = 1;
 
Que veut dire prototype ?
 
si j'écris game.Tile0.frame = 1; ça ne ferait pas la même chose ?
 
Merci de m'éclairer, j'ai lu des tutoriels, mais j'ai jamais vraiment compris l'utilité de prototype.
 
Moi quand je crée un object je fais
 
obj = new Object();
 
et ensuite pour les propriétés de mon objet(on appele ça des instances ?) j'écris par exemple:
obj.name = "allo";
obj.machin = 25;
 
mais je n'utilise pas prototype.  :hello:

mood
Publicité
Posté le 27-08-2004 à 22:57:41  profilanswer
 

n°834826
raytaller
Posté le 27-08-2004 à 23:49:05  profilanswer
 

tu fais bien, prototype ça sert pas à ça :)
prototype ça sert à ajouter des méthodes à une classe.
 
exemple.
 

Code :
  1. Number.prototype.invert=function(){
  2.     return -this;
  3. }
  4. var x=12;
  5. trace(x.invert());


 
voilà, une fois que j'ai créé mon proto, je peux utilise invert() avec tous les nombres de l'animation.
c'est très pratique.
 
tu peux aussi le faire avec une classe perso :
 

Code :
  1. MaClasse=function(prop){  // création de ma classe
  2.      this.prop=prop;   // un attribut à la con
  3. }
  4. MaClasse.prototype.getProp=function(){   // ma fonction get
  5.      return this.prop;
  6. }
  7. var zob=new MaClasse(12);
  8. trace(zob.getProp());


 
enfin en tous cas, l'utiliser avec des propriétés c'est vraiment inutile.
si tu es sous 2004, ces problèmes ne se posent plus puisque maintenant, l'as2 est vraiment OO.
 
la technique que tu utilises n'est valable que lorsque ton objet est unique. à ce moment là en effet, pas besoin de créer de classe comme je viens de le faire.
 
si par contre, tu dois en avoir plusieurs, il vaut mieux faire de l'objet c'est clair.
 
si t'as des questions :)


Message édité par raytaller le 27-08-2004 à 23:50:48
n°834831
raytaller
Posté le 27-08-2004 à 23:58:18  profilanswer
 

Citation :

et ensuite pour les propriétés de mon objet(on appele ça des instances ?)


 
nan.
une instance c'est un objet qui apartient à une classe.
quand tu fais :
var myXml=new XML();
ou var s=new Sound();
 
myXml et s sont des instances des classes XML et Sound.
 
s.load(.. );  ça c'est une méthode (une fonction de la classe)
s.truc=12;   ça c'est un attribut

n°834963
Nermal
Mooonnn prééécieuuxx!
Posté le 28-08-2004 à 08:13:43  profilanswer
 

Merci  :jap:   :hello:
 
Mais je ne comprends pas très bien  :lol:  
 
Je suis en train de lire ce tutoriel:
 
http://www.flash-france.com/action [...] ticleid=16
 
Et je ne vois toujours pas la différence entre:
 
Chien=function(){
this.pattes=4
}
 
brutus= new chien();
rantanplan= new chien();
medor=new chien();
 
 
et:
 
Chien= function(){}
Chien.prototype.pattes=4;
brutus= new chien();
rantanplan= new chien();
medor=new chien();
 
medor.poilLong=true;
 
Je ne vois pas ce que prototype fait de plus, car dans le premier exemple si j'écris: trace(brutus.pattes); il retourne 4 alors je vois pas pourquoi je mettrais prototype pour définir pattes = 4; C'est l'utilité de plus que je ne comprends pas  [:chacal_one333]


Message édité par Nermal le 28-08-2004 à 21:10:53
n°835494
raytaller
Posté le 29-08-2004 à 14:42:06  profilanswer
 

la différence c'est que tu ajoutes la propriété en dehors de la définiction de la classe.
 

Code :
  1. /* ajoute une propriété à la classe */
  2. Classe=function(){
  3.     this.prop="salut";
  4. }
  5. /* pareil */
  6. Classe=function(){
  7. }
  8. Classe.prototype.prop="salut";
  9. /* ajoute une propriété à l'instance */
  10. var zob=new Classe();
  11. zob.prop="salut";


n°835496
raytaller
Posté le 29-08-2004 à 14:44:20  profilanswer
 

mais donc, de préférence directement dans la définition de la classe.
mais sinon, en as1 tu peux aussi faire de l'héritage  [:dawa]  
 
 
j'espère que c'est pas trop confus.. ça fait un bout de temps que j'ai pas  fait de poo  en as1.
 
à ton service pour d'autres questions


Message édité par raytaller le 22-11-2004 à 18:43:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  c'est quoi prototype ?

 

Sujets relatifs
HTML >> Créer un 'prototype'[DLL] Prototype des fonctions exportées
Question de prototype ...Différence entre un prototype et une fonction
Plus de sujets relatifs à : c'est quoi prototype ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR