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 :

[objet] appeler une méthode d'objets contenus dans un tableau (iterator ?)


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 126
    Points
    126
    Par défaut [objet] appeler une méthode d'objets contenus dans un tableau (iterator ?)
    Bonjour,

    Je suis en train de développer un programme en javascript orienté objet et je suis face à un probleme.

    - J'ai un objet Element possedant une méthode hide() qui permet de le cacher.
    - Un second objet: Zone, possede un membre (zoneElements) qui est un tableau contenant tous les objets Element créés.

    Je souhaite pouvoir appliquer ma méthode hide() à tous les Element contenu dans le tableau Zone.zoneElements

    En code, c'est plus parlant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    myZone = new Zone;
    myZone.add( new Element );
    myZone.add( new Element );
    myZone.zoneElements content donc 2 objets de type Element

    Est-il possible de produire quelque chose du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myZone.zoneElements.hide()
    Merci de votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 126
    Points
    126
    Par défaut
    Personne n'a d'idée ?

  3. #3
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Salut,

    Avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (var i = 0;i<myZone.zoneElements.length;i++) {
        myZone.zoneElements[i].hide();
    }
    Est ce que cela fonctionne ?

  4. #4
    Membre habitué
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 126
    Points
    126
    Par défaut
    Merci pour ta réponse Rieppe.

    En effet, ce code fonctionne mais celà m'oblige à écrire ce type de boucle pour toutes mes méthodes (la méthode hide() n'est qu'un méthode parmi tant d'autre de l'objet Zone)

    Je recherche qqch de vraiment généralisé, j'ai besoin de pouvoir faire par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    myZone.zoneElements.hide()
    myZone.zoneElements.show()
    myZone.zoneElements.EncoreUneAutreMethode()
    ...
    Je rêve complétement avec cette syntaxe ou y'a t'il un moyen d'arriver à programmer qqch comme ça ?
    N'est pas ça un Iterator ?

  5. #5
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Désolé mais là je suis pas assez compétent ^_^

    J'aurais écrit les méthodes dans l'objet Zone.

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 289
    Points
    3 289
    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
    Array.prototype.forEach=function(traitement) {
       for (key in this) {
           if (this.hasOwnProperty(key)) {
               traitement(this[key], this, key);
           }
       }
    }
    
    var x = new Array();
    x.el0=0; x.el1=1; x[0]=0; x[1]=1;
    x.forEach(function(nbr, array, key) {
       if (nbr==0) { alert("Un 0 est changé en 1 à :" + key); array[key]=1); }
    })
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  7. #7
    Membre habitué Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Sympa tout ca :O

Discussions similaires

  1. Appeler une méthode d'objet
    Par Awery2 dans le forum Langage
    Réponses: 2
    Dernier message: 25/12/2014, 13h45
  2. Réponses: 5
    Dernier message: 19/05/2014, 08h16
  3. Appeler une méthode d'objet via son nom à l'exécution
    Par Nono40 dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/02/2013, 11h51
  4. [ZF 1.11] Appeler une méthode d'un contrôleur dans un plugin
    Par absot dans le forum Zend Framework
    Réponses: 1
    Dernier message: 30/04/2012, 14h11
  5. Réponses: 2
    Dernier message: 29/05/2008, 15h59

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