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

Signaler
Messages postés
12
Date d'inscription
vendredi 11 janvier 2002
Statut
Membre
Dernière intervention
21 novembre 2008
-
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
-
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

Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
L'exemple que tu nous fournis fonctionne. Où est ton soucis ?
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
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é.