balvick
Messages postés36Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention31 mars 2009
-
24 mars 2009 à 14:22
balvick
Messages postés36Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention31 mars 2009
-
31 mars 2009 à 14:27
Bonjour,
je poste pas souvent car je trouve souvent la solution avec mon ami google, mais la pas moyen de retrouvé la source de ce programme.
je souhaite faire un objet perso.
(je sais qu'on peut le faire en class, mais j'aimerai avec d'autres info sur se que j'ai commencé)
Voici mon code :
Perso = {
nom = "Bill",
Age = 19,
init : function (new_nom,new_age) {
this.nom=new_nom;
this.age=new_age;
}
}
Perso1 = perso;
trace(perso1.nom); // = Bill
Perso2 = perso;
Perso2.init("stan",11);
trace(perso1.nom); // = stan ( POURQUOI !!!)
je redemande les information du perso1 mais il me donne les derniers info que j'ai rentré.
j'ai du mal a comprendre cette "objet"
Perso1= new perso; // Ne fonctionne pas.
si un personne peut m'aider a comprendre comment faire une copie de cette objet et quelle type d'objet est-ce la ?
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 31 mars 2009 à 14:20
Salut,
ton probleme est la : Perso2 = perso les objets sont passés par référence... Perso1 et Perso2 pointent vers le même objet... Perso{}
la solution est toute simple... passe par une class Perso et instancie un nouveau Perso pour chaque objet que tu veux.
Sinon il te faudra 'cloner' ton objet et cela risque d'etre assez fastidieux...
Perso { nom "Bill", Age = 19, init : function (new_nom,new_age) { this.nom=new_nom; this.age=new_age; } }
Perso1={}
Perso1.nom=Perso.nom
Perso1.Age=Perso.Age
Perso1.init=Perso.init
Perso2={}
Perso2.nom=Perso.nom
Perso2.Age=Perso.Age
Perso2.init=Perso.init
Perso2.init("stan",11)
La, ca devrait marcher...
sinon utilise une petite fonction
function createPerso(_nom:String,_age:Number):Object{
var perso:Object={}
perso.nom=_nom
perso.Age=_age
return perso
}
var Perso1=createPerso('Bill',19)
var Perso2=createPerso('Stan',11)