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 :

Lister les fonctions d'un script


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut Lister les fonctions d'un script
    Bonjour,

    Modification du probleme plus bas en raisons du changement de la façons de procéder (en #8) : http://www.developpez.net/forums/d13...t/#post7596538

    Je recherche un moyen de lister tout les "nom de fonctions" disponible dans un script ou un autre et mettre les nom recuperer dans un array par exemple.

    A quoi ça sert me direz vous. C'est pour une application web que je fait, je voudrais que les utilisateurs choisissent dans un premier <select> le script à charger par le nom (ça c'est facile a faire en récupérant le nom du fichier)
    et dans un autre <select> la fonction a lancer disponible dans le script choisis suivant le choix du premier <select> (c'est la ou je galère).

    je veux donc avoir dans le second <select> la liste des fonctions disponible dans le script choisi.

    Comment puis-je faire cela ? Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Par défaut
    Bonsoir,

    Dans tes fichiers appelés tu peux peut être créer un tableau qui liste tes fonctions.

    Donc chaque script appelé aura son tableau listant les fonctions.



    Natso

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    Merci pour l’idée. Sa aurais pu en être une, mais les scripts serons fait par les utilisateurs et je ne voudrais pas leur imposer d'avoir a faire ce tableau regroupant leurs fonctions.

    J'avais deja vue que en C# on pouvais faire ce genre de chose, mais j'ai encore rien vue de pareil en javascript.

  4. #4
    Membre expérimenté
    Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 174
    Par défaut
    Il y a peut être un truc tout bête mais je ne connais pas.

    Tu dois imposer une forme d'écritures des fonctions aux utilisateurs ?

    Sinon lire chaque fichier script à la recherche des fonctions.

    Natso

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    L'idée d'imposer une forme d’écriture des fonctions me vas bien, genre une function Start() {}. Je vais prendre cette solution.

    Merci en tout cas.

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Si les fonctions en question sont regroupées au sein d'un même namespace à un même niveau, un moyen simple pour obtenir une Array des éléments est Object.keys :
    Ceci dit, un générateur de doc comme JSDoc est 100 fois plus utile et pertinent. Mais il faut que le développeur fasse l'effort de documenter son code.

  7. #7
    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
    sinon avec un ajax et une regex
    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 !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    Je me retrouve confronter à un autre problème. Les utilisateurs pourrons créer plusieurs script et si il créer sur chaque script une fonction Start(), ça ne marcheras pas correctement, a moins de fusionner les fonction identique de chaque script.

    • Voici plus de précision sur ce que je fait ou aimerais faire :

    En faite chaque script pourras être attribuer à un objet 3d dans un <canvas> (j'utilise Babylon.js comme moteur, qui est excellent au passage), donc tout les scripts créer par l'utilisateur seras sur la même page html au final a quelque chose pret (une page html = une scène). Si sur chaque script il y a une fonction Start, il vas y avoir des problemes.
    Pour ceux qui connaissent Unity3d par exemple au niveau des script js, c'est un peut dans cette idée ce que je voudrais faire au niveau des scripts.

    Comment remédier à sa, comment avoir plusieurs fonction identique. car si je fait sa (pour exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var Start = function(){ console.log("Je suis ");};  
    var Start = function(){ console.log("Un teste");};
    Start();
    Ça m'affiche dans la console que "Un teste", donc ça n’exécute que la dernière fonction et non ne les fusionnes.

    J'ai aussi penser au namespace, mais la forme d’écriture est moins simple pour les utilisateurs (mon application s'adresse au amateur en partie)

    Merci encore pour votre aide.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Par défaut
    Bon je pense avoir trouver une solution qui est de renommer automatiquement chaque fonction de chaque script quand on génère le projet (le jeu) en ajoutant le nom du script.

    Ça feras évidement des copie de script (ceux pour l'application et ceux pour le jeu)

    par exemple Start(), Update() dans l’application et Start_Teste(), Update_Teste() pour le jeu ou Teste est le nom du script (Teste.js).
    ensuite d'appeler les fonctions comme ça window['Start' + "_" + scriptName]();, window['Update' + "_" + scriptName] . scriptName est la variable nom du script recuperer.

    ainsi chaque script auras des fonctions différente qui lui serons propre. Je devrais m'en sortir comme ca.

    Que pensez vous de cette solution ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Il n'y a aucune raison de mettre tous les scripts dans le même scope. Attribue un scope par script, ce sera plus simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    scriptA.start();
    scriptB.start();

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

Discussions similaires

  1. Lister les fonctions d'un fichier source
    Par Davidbrcz dans le forum C++
    Réponses: 24
    Dernier message: 17/09/2008, 17h51
  2. lister les fonctions d'un fichier
    Par NicoO_O dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2007, 10h51
  3. lister les fonction d'une dll
    Par WELCOMSMAIL dans le forum Windows
    Réponses: 2
    Dernier message: 29/03/2007, 21h48
  4. Lister les fonctions d'une DLL
    Par alexadvance dans le forum Visual C++
    Réponses: 3
    Dernier message: 19/03/2007, 12h19
  5. Réponses: 2
    Dernier message: 05/12/2006, 18h12

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