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 privée


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut Accéder à une variable privée
    Bonjour à tous
    J'ai suivi les tutoriels sur les fonctions de J.P. Vincent et tenté de les appliquer.
    Dans un fichier j'ai déclaré un espace de nom pour toute mon application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Création du namespace de l'application
    (function() {
        MY = window.MY || {};
    })();
    Dans un autre fichier j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    MY.cpts = (function() {
     
        var that = this;
     
        // Ma variable privé
        var c203 = 0;
     
       // Méthode publique
        return {
            getCompte: function(c) {
                return that[c];
            }
        };
    })();
    A partir de là j'essaye de récupérer la valeur de ma variable dans la console en passant à ma méthode publique le nom de la variable comme argument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MY.cpts.getCompte("c203") // Retourne undefined
    La console me renvoie undefined. Le problème vient-il du fameux contexte ou peut-être suis-je complètement à coté de la plaque
    Merci de votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    pourquoi ne pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    return {
      getCompte: function(c) {
        return c; //that[c];
      }
    };

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Parce que ça me renverrait juste la valeur du paramètre.
    J'ai plusieurs variables privées qui correspondent à des comptes. Plutôt que de faire un getter par compte je voudrais passer le nom de la variable en paramètre pour obtenir sa valeur. Malheureusement ma syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    return {
      // c représente le nom de la variable
      getCompte: function(c) {
         return that[c];
      }
    };
    ne fonctionne pas !

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    au lieu de faire var c203 = 0; tu dois faire this.c203 = 0;, ça donne donc ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    MY.cpts = (function() {
     
        var that = this;
     
        // Ma variable
        this.c203 = 0;
     
       // Méthode publique
        return {
            getCompte: function(c) {
                return that[c];
            }
        };
    })();
    Mais dans ce cas, elle ne sera pas privée.

    Si tu veux qu'elle soit privée, alors tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    MY.cpts = (function() {
     
        var that = this;
     
        // Ma variable privé
        var privat = {c203:0};
     
       // Méthode publique
        return {
            getCompte: function(c) {
                return privat[c];
            }
        };
    })();

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Par défaut
    Merci Willpower c'est exactement ce que je cherchais, clair, net et précis

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Ouh là là, à coté de mes pompes, rien compris
    ...c'est malin maintenant j'ai mal à la tête

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. accèder une $variable en bas de page !
    Par Dsphinx dans le forum Langage
    Réponses: 11
    Dernier message: 24/11/2006, 10h23
  2. 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
  3. [POO] Problème d'accès à une variable privée
    Par Nadd dans le forum Langage
    Réponses: 8
    Dernier message: 17/09/2006, 21h43
  4. Réponses: 9
    Dernier message: 09/08/2006, 13h39
  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