Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2011, 10h28   #1
Membre régulier
 
Avatar de thecanea
 
Inscription : octobre 2008
Messages : 124
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : octobre 2008
Messages : 124
Points : 71
Points : 71
Par défaut POO Appel dynamique à une méthode d'un objet

Bonjour à tous,

Je souhaite appeler une méthode en lui passant deux paramètres, le premier un objet, le second une méthode à appeler sur cet objet.
Je n'arrive pas à lancer l'appel à la méthode.

Voici ma classe
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function MyClasse(pName) {
  this._name = pName;
}
MyClasse.prototype = {
  eventA: function() {
    //do sthg
    this._name = 'eventA ' + this._name;
  },
 
  eventB: function() {
    //do sthg else
  }
}
Voici ma fonction :
Code :
1
2
3
4
function test(pObject, pFn) {
  // do sthg
   pObject.pFn();   
}
Et ce que je souhaite faire :
j'ai un objet instancié de ma classe, et je souhaite appeler :
Code :
test(monObjet, 'eventA');
Or ce code ne fonctionne pas, firebug m'indique que pFn is not a function.

Comment faire pour appeler dynamiquement la méthode souhaité sur mon objet donné ?

ps : le passage de l'objet fonctionne bien car le code pObjet.eventA(); fonctionne très bien.

Merci par avance pour vos idées,

Thec
thecanea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 10h43   #2
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 847
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 847
Points : 1 344
Points : 1 344
si "monObjet" est bien une instance de "MyClass" alors

Code js :
1
2
3
4
function test(pObject, pFn) {
  // do sthg
   pObject[pFn]();   
}
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 10h48   #3
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 847
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 847
Points : 1 344
Points : 1 344
Citation:
Envoyé par thecanea Voir le message
Bonjour à tous,

Je souhaite appeler une méthode en lui passant deux paramètres, le premier un objet, le second le nom d'une méthode à appeler sur cet objet.
Je n'arrive pas à lancer l'appel à la méthode.
et soit toujours précis dans tes questions, parce qu'il est également possible de passer des méthodes en paramètre en javascript.
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 11h58   #4
Membre régulier
 
Avatar de thecanea
 
Inscription : octobre 2008
Messages : 124
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : octobre 2008
Messages : 124
Points : 71
Points : 71
Parfait, c'est résolu pour moi.

Merci beaucoup pour la réponse, et je tiendrai compte de ta remarque pour la précision dans mes questions.

Encore merci,

Thec
thecanea est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h45.


 
 
 
 
Partenaires

Hébergement Web