IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Accéder à une variable en JS OO


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Accéder à une variable en JS OO
    Bonjour,

    Dans le script suivant, je n'arrive pas à afficher correctement la variable this.param dans le contexte d'une requête Ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function MaClasse (variable) {
     
    this.param = variable;
     
    this.open = function () {
    	new Ajax.Request('action.php', {
    		method : 'POST',
    		onSuccess : function(xhr) {				
    		  alert(this.param);
    		});
    	}
    }
     
    var obj = new MaClasse('var_1');
    obj.open();
    Merci d'avance à qui pourra bien m'aider.

    Fabien

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut
    Salut,

    L'instruction 'this' référence les propriétés de la fonction dans laquelle l'instruction est jouée.

    Essai ça : alert(this.parent.param)

    Cordialement.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup, mais ça ne fonctionne pas. C'est toujours UNDEFINED...

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function(xhr) {				
    		  alert(this.param);
    		}
    fait référence a la méthode et non plus a l'objet , il te faut donc passer en paramètre param

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Par défaut
    Le problème vient de la portée de la variable param.

    Est-ce que en la déclarant en variable globale, cela fonctionne mieux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function MaClasse (variable) {
    param = variable;		
    this.open = function () {
    	new Ajax.Request('action.php', {
    		method : 'POST',
    		onSuccess : function(xhr) {				
    		  alert(param);
    		});
    	}
    }
     
    var param;
    var obj = new MaClasse('var_1');
    obj.open();

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    bein entendu avec une variable globale ça passe mais c'est risqué en cas d'instances multiples à moins de pusher un array ...

    je tentais l'opération avec call ou apply , mais a priori ça n'a pas l'air de vouloir
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    oui ça marche , mais ce n'est pas le but
    donc passe la en closure ( je te renvois vers les tutoriels de la section JS )

  8. #8
    Invité
    Invité(e)
    Par défaut
    Merci à vous, je vais jeter un coup d'œil aux tuts, je reviens vers vous en cas de besoins.

Discussions similaires

  1. [Eclipse RCP] accéder à une variable globale
    Par fabrisss dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 10/01/2007, 08h37
  2. Réponses: 4
    Dernier message: 13/12/2006, 16h10
  3. accèder une $variable en bas de page !
    Par Dsphinx dans le forum Langage
    Réponses: 11
    Dernier message: 24/11/2006, 10h23
  4. accéder à une variable déclarée dans un autre fichier
    Par sg.forums dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/10/2006, 09h20
  5. [PERL] accéder à une variable d'une autre classe
    Par LE NEINDRE dans le forum Langage
    Réponses: 8
    Dernier message: 11/01/2006, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo