Affectation dynamique des propriétés d'une classe

cs_Thanatos Messages postés 12 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 21 novembre 2008 - 21 nov. 2008 à 12:00
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 - 22 nov. 2008 à 03:53
Bonjour,

Un exemple valant mieux qu'un long discours, j'ai une classe "Personne" ayant plusieurs propriétés comme Nom, Prenom, Age, Adresse etc ..
Je voudrais creer une fonction qui puisse affecter automatiquement la bonne propriétés à une valeur  desirée un peu comme ceci :

function Affecte ( prop, val) {
Personne.prop = val ;
}

Bien entendu, ce code ne marche mais existe-t-il une méthode pour réaliser ce type de fonction ?

Merci d'avance

Zass

2 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
21 nov. 2008 à 16:15
L'exemple que tu nous fournis fonctionne. Où est ton soucis ?
0
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
22 nov. 2008 à 03:53
Il y a une distinction à faire entre une classe et un objet. Une classe c'est un modèle que tous les objets suivent. Quand tu utilises la valeur "Personne", tu fais référence à la classe et non à un objet, ce qui voudrait dire que tu modifies le modèle. Ce que tu as probablement voulu faire est ceci :

Personne.prototype.Affecte = function (prop, val) {
    this.prop = val;
}

"Personne.prototype.Affecte", ceci permet d'ajouter une méthode à ton objet. Le reste qui suit déclare la méthode et l'initialise. Ton "Personne" initiale a été changé par "this" qui fait référence à l'objet courant sur lequel la méthode est exécuté.
0
Rejoignez-nous