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 :

[POO] Objet et méthodes imbriquées


Sujet :

JavaScript

  1. #1
    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 [POO] Objet et méthodes imbriquées
    Salut
    petite question , je n'arrive pas a appeler une méthode d'un objet contenu dans un autre objet :

    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
    16
     
    function VerifForm(){
     
        //Liste de champs
        this.ListFields = function(){
    		this.toto = function(){
    			alert('titi');
    		}
     
        }
        this.Fields = new this.ListFields;
    }
     
    var NewVerif = new VerifForm;
    var test = VerifForm.Fields;
    test.toto;
    si quelqu'un pouvais m'aider ^^

  2. #2
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    je ne sais pas si ça correspond ?.? et l'utilité !.!

    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
    16
    17
    18
    19
    20
    <body>
    <script>
    function funcToto(){
    	alert('titi');
    }
     
    function VerifForm(){
     
        //Liste de champs
        this.ListFields = function(){
    		this.toto = funcToto();
        }
        this.Fields = new this.ListFields;
    }
     
    var NewVerif = new VerifForm;
    var test = NewVerif.Fields;
    test.toto;
    </script>
    </body>

  3. #3
    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
    Non on sort du contexte
    je souhaite utiliser les méthodes d'un OBJET qui est lui même un OBJET , et non déclaré une méthode a partir d'une fonction globale

    L'utilité ? heu gèrer des objets / méthodes a l'intérieur d'autres objet ... comme une collection mais sans avoir a gèrer la collection a l'extérieur de mon objet ...

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    var NewVerif = new VerifForm();

    NewVerif.ListFields();
    NewVerif.toto()
    ?

  5. #5
    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
    Effectivement cela fonctionne mais pourquoi ???
    la méthode que l'on appel appartient à l'objet "ListFields" et non directement à son parent donc pourquoi peut-ton l'appeler ?
    et sinon , comment rendre la méthode privée

  6. #6
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Les méthodes sont liées à l'object. le "this" à l'intérieur de la méthode fais référence à l'object.
    Tous les object et méthodes sont public.

  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
    Effectivement mais alors dans ce cas la pourquoi :
    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
    16
    17
     
    function VerifForm(){
     
        //Liste de champs
        this.ListFields = function(){
    		var toto = function(){
    			alert('titi');
    		}
     
        }
        this.Fields = new this.ListFields;
    }
     
    var NewVerif2 = new VerifForm();
     
    NewVerif2.ListFields();
    NewVerif2.ListFields.toto;
    est bon mais ne renvoit plus rien ?

    ma méthode toto est maintenant une méthode privé de ma fonction ListFields ...

  8. #8
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    toto ici est une variable interne de ta methode. Ce dernier "disparait" dès que la méthode est exécuté.

    NewVerif2.ListFields.toto n'est plus définie.

    ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alert(NewVerif2.ListFields);
    alert(NewVerif2.ListFields.toto);

  9. #9
    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
    ce qui voudrais dire qu'il faudrait que je déclare une variable dans mon objet de type toto et l'instancier au seins de mon objet

  10. #10
    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
    si quelqu'un pouvait m'aiguiyer pour créer une variable propre a mon objet imbriqué qui resterait privée ??

  11. #11
    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
    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 !

  12. #12
    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
    non pas tout a fais , car je veux en fait utiliser une méthode d'une méthode ( je commence par voir comment faire avec une simple variable avant de passer par une méthode )

    mais je veux au final avoir :

    monObjet.monSousObjet.mesMéthodes

  13. #13
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    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 VerifForm(){
     
        this.ListFields = new ListFields();
     
    }
     
    function ListFields(){
    	this.toto = function(){
    			alert('titi');
    		}
    }
     
    var NewVerif2 = new VerifForm();
    NewVerif2.ListFields.toto();
    ?

  14. #14
    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 c'est une solution que l'on m'avait proposé un peu plus haut
    mais je pensais pouvoir utiliser plusieurs objet les uns a l'intérieurs des autre mais effectivement je vais devoir passer par cette méthode, merci a vous tous

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

Discussions similaires

  1. [Débutant] [POO] Définition de Méthodes au sein d'une classe Objet
    Par ghada97 dans le forum MATLAB
    Réponses: 7
    Dernier message: 29/11/2013, 18h31
  2. [Débutant] [POO] Appel de méthodes en programmation orientée objet
    Par ghada97 dans le forum MATLAB
    Réponses: 6
    Dernier message: 26/10/2013, 11h50
  3. Réponses: 3
    Dernier message: 25/02/2010, 13h47
  4. Réponses: 4
    Dernier message: 11/04/2007, 14h26
  5. [POO] Objet Date et méthode setYear()
    Par NikoBe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/12/2006, 18h37

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