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 :

partager un objet entre deux fonctions


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Points : 41
    Points
    41
    Par défaut partager un objet entre deux fonctions
    Bonjour,
    J'utilise un objet sur un script qui me permet de me connecter à une base sqlite dans une fonction dédiée. Cependant, lorsque j'utilise d'autres fonctions, celles-ci n'ont plus accès à cet objet. Quelle syntaxe utiliser pour permettre ces échanges ?
    Merci de l'aide,
    Thibaud.

  2. #2
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    soit passer l'objet ou la variable en paramètre d'une fonction à l'autre
    soit declarer la variable comme globale (declaration en dehors des fonctions)

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ceci dit, il me semble qu'il y a un problème de conception derrière tout ça...
    Une classe est créée pour isoler ses propriétés et méthodes, s'il y a une méthode que tu souhaite utiliser en dehors de ta classe, je comprend mal pourquoi tu la définis dedans

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    C'est quand même bizarre cette histoire (enfin tel que je la comprends à partir de ce que tu décris)...

    Si ton objet est déclaré dans un de tes scripts, il n'y a pas de raison a priori pour que tes autres fonctions ne puissent pas accéder à l'objet ou à ses méthodes.

    Exemple :
    dans un 1er script "objet.js"
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var tonObjet = {
       propriete1: "abc";
       propriete2: 0;
       methode1: function(param) {
          // traitements divers
       }
    }
    et dans un autre script de la même page, disons "actions.js" :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // ... à un endroit dans le script
       var machin = tonObjet.methode1(truc);
    // ...
    de cette manière il ne devrait pas y avoir de problème.

    Tout ça pour dire que tout dépend de la manière et de l'endroit où ta méthode est déclarée et appelée : montre-nous pour avoir plus de précisions. ^^

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Merci pour vos conseils dont j'ai grand besoin étant débutant.
    J'ai ici besoin de trois fonctions.
    - SQLite: c'est un objet associé à des prototypes qui crée une connexion à une base sqlite. La méthode execute exécute une instruction mysql, notamment en lisant un à un mes enregistrements.
    - tabRefresh: je met à jour ma base mysql. C'est là que je crée un objet SQLite pour me connecter à ma base et que je passe des instructions avec execute.
    - transformation: Par souci de lisibilité, j'utilise dans la boucle de tabRefresh cette fonction de traitement à l'extérieur de la boucle. Or je ne peux pas passer par des arguments, car transformation peut faire à nouveau appel à mon objet SQLite en lisant d'autres enregistrements.
    D'après ce que vous me dites, je dois créer un objet global et non local (sans var) dans ma fonction tabRefresh pour me connecter à ma base sqlite. Ainsi, il sera accessible dans transformation.

    Cependant, il n'est pas nécessaire de recréer plusieurs fois cet objet. Est-il possible de vérifier s'il existe avant de le recréer, et n'y a-t-il pas un risque de non mise à jour dans ce cas ? Auquel cas il faudrait le recréer de toute façon toutes les heures par exemple ?

  6. #6
    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
    Points : 4 835
    Points
    4 835
    Par défaut
    c'est le principe des class singleton non ?
    utiliser la même instanciation d'un objet commun partout dans le programme

Discussions similaires

  1. Partager une instance d'objet entre deux processus
    Par LaurentC33 dans le forum C#
    Réponses: 0
    Dernier message: 14/02/2015, 18h10
  2. attendre 1 seconde entre deux fonctions
    Par urousseau dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2008, 19h14
  3. [WebLogic]Partager un bean entre deux applis web
    Par fatboyslim75 dans le forum Weblogic
    Réponses: 2
    Dernier message: 12/12/2005, 19h22
  4. Réponses: 5
    Dernier message: 17/08/2005, 12h40
  5. [langage] Passage d objet entre deux fichiers
    Par Slippers dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2005, 14h45

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