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] Est-il possible de récupérer les arguments muets d'une fonction ?


Sujet :

JavaScript

  1. #1
    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 : 47
    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 [POO] Est-il possible de récupérer les arguments muets d'une fonction ?
    J'ai écrit une petite fonction introspective, un peu pour débugger, mais surtout pour m'exercer et par curiosité

    Elle affiche dans un simple alert la liste des paramètres passés à la fonction où est placé l'appel, ainsi que l'arbre des appels (callstack, pile d'appels, appelez ça comme vous voulez ^^).
    Jusque là, rien de très original, mystique ou bizarre.
    Code javascript : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    // affichage de tous les paramètres passés à la fonction ( pour debuggage ) 
    function all(arg)
    {
    	var mess = "------------------------------------------\n";
    	mess    += "Liste des arguments passés à\nla fonction " + arguments.callee.caller.name + " :\n";
    	mess    += "(sur " + arguments.callee.caller.length + " attendus)\n\n";
     
    	for (var i = 0 ; i < arg.length ; i++)
    	{
    		mess += "argument numero " + (i + 1) + " : " + arg[i] + "\n";
    	}
    	mess = calltree() + "\n" + mess + "\n------------------------------------------\n";
    	alert(mess);
    }
    function calltree()
    {
    	var mess = "------------------------------------------\n";
    	mess    += "Arbre d'appels :\n\n";
    	if (document.all)
    		return mess + "(indisponible pour IE)";
     
    	var root = arguments.callee.caller.caller;
    	var t = new Array();
    	while (root)
    	{
    		t.push(root.name);
    		root = root.caller;
    	}
    	for (var i = (t.length - 1); i >= 0; i--)
    	{
    		for (var ii = 0; ii < ((t.length - 1) - i); ii++)
    		{
    			mess += "  ";
    		}
    		mess += "appel n°" + ((t.length) - i);
    		if (i == (t.length - 1))
    			mess += " (racine)";
    		mess += " : " + t[i] + "\n";
    	}
    	return mess;
    }
    Pour l'utiliser il suffit de placer dans une fonction quelconque l'appel suivant :
    Je l'ai testée : elle marche très bien. (edit : petit oubli : pas complètement sous IE pour le moment )
    Par contre, je voudrais y ajouter une amélioration sans y parvenir pour le moment :

    ---> voir ma question du titre : "Est-il possible de récupérer les arguments muets d'une fonction ?"

    Ce que je voudrais, c'est accéder aux identificateurs utilisés pour nommer les arguments dans la signature de la fonction.
    Exemple, dans ce bout de code imaginaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function afficher(nom, score)
    {
       // ...
    }
    Je sais récupérer le nom de la fonction, à savoir la chaîne "afficher", mais comment récupérer les chaines "nom", et "score" (attention nous sommes bien d'accord : je ne parle pas du nom "bebert" et du score "122" qui sont les valeurs passées ponctuellement à tel appel...)

    Si quelqu'un a un début de piste, une idée géniale ou autre...
    ...en tout cas merci de m'avoir lu jusque ici ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  2. #2
    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 : 53
    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
    Tu peux essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i in arguments)
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    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 : 47
    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
    Heu... je vois ce que tu veux faire, mais je ne comprends pas ce que ça change par rapport au fait de parcourir les propriétés de l'objet avec une boucle for "classique" : du coup je viens de faire l'essai en plaçant ta boucle juste avant ma boucle for, et contenant une seule instruction pour controler le passage( { alert(i); } ).
    Résultat : pas d'alert

    Autre essai en bouclant sur arg au lieu d'arguments (ce qui me semblait plus logique dans le contexte) : idem, pas d'alert

    Quelle étape ai-je raté ?

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  4. #4
    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 : 53
    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
    Sur un objet, la boucle for ... in boucle sur les propriétés de l'objet, y compris ceux de sa chaîne de prototype. Mais ici, tu déclares ta fonction comme une variable et non comme un objet, donc effectivement, cela ne fonctionne pas...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    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 : 47
    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
    Citation Envoyé par Bovino
    tu déclares ta fonction
    laquelle ?

    Comme "arg" est la copie de l'objet arguments (passé par valeur à "all"), j'en avais conclu que dans une boucle (for var i in arg) { //... }, "arg" est bien un objet, non ? (en tout cas un alert(arg); placé dans la fonction "all" m'affiche [Object object])
    Tu pensais à quoi comme manière de forcer le type objet ? remplacer l'appel par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    all(new Object(arguments));
    ?
    Ou bien commencer la fonction "all" par :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    arg = new Object(arg);
    ...?

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    En fait, je ne pense pas que ce soit possible. Si on accède aux propriétés de cet objet via un entier c'est qu'on ne peut pas y accéder via leur nom.
    C'est comme si les propriétés de arguments s'appelaient :
    arguments.0
    arguments.1
    arguments.2
    etc.
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  7. #7
    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 : 47
    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
    Oui, je crois malheureusement que tu as raison.

    J'étais déjà arrivé devant ce même "mur" quand en java j'avais essayé de savoir si on pouvait accéder aux identificateurs des variables... pas possible

    Merci en tout cas à vous deux ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

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

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Points : 491
    Points
    491
    Par défaut
    merci pour ton code,grâce a toi j'ai appris la fonction caller, et ma permis de faire ca ->
    http://www.developpez.net/forums/d69...tion-methodes/

    a++

  9. #9
    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 : 47
    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
    Ca a l'air intéressant je vais jeter un oeil, merci du lien ;-)

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  10. #10
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Function.prototype.getArgumentsNames=function()
    	{
    		var m=/function ([^(]*)\(([^)]*)\)/.exec(this);
    		if (m)
    		{
    			var argumentsNames=m[2].split(', ');
    			if (argumentsNames.length && argumentsNames[0]) return argumentsNames;
    		}
    		return [];
    	}
    11001.00101.10010.10000.00111

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

    wow... là je suis un peu ému j'avoue

    merci beaucoup je vais étudier ce code qui me dépasse autant qu'il me plait

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  12. #12
    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 : 53
    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

    Tu as testé, parce que là, soit je suis complètement dépassé, soit plusieurs trucs m'échappent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function.prototype.getArgumentsNames=function()
    Cela implique que tu passes par un constructeur de fonction (new Function) ce qui est assez rare...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var m=/function ([^(]*)\(([^)]*)\)/.exec(this);
    Tu récupères avec une regexp des éléments qui ne sont pas présents dans le code ? (Le but étant de récupérer les arguments muets)...

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var argumentsNames=m[2].split(', ');

    exec() renvoie le texte en correspondance ou null... m[2] correspond à quoi ???
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  13. #13
    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 : 47
    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
    A ce que j'en ai compris après une première lecture attentive (mais je n'ai pas encore testé),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function.prototype.getArgumentsNames=function()
    me semble être une excellente structure à laquelle je n'avais pas pensé : je savais effectivement qu'on pouvait "dériver" les objets natifs javascript en leur ajoutant de nouvelles fonctions, mais cette utilisation ne m'est pas encore très intuitive, et je ne l'avais pas envisagé ici... en tout cas la syntaxe est régulière.

    Ma connaissance des regexp est assez fraiche elle aussi, mais il me semble comprendre grosso modo comment cette regexp décrit la signature d'une fonction pour en extraire les arguments, et jusque là tout va bien...

    Ce qui m'étonne surtout c'est que si je comprends bien, la référence à this au sein de la fonction désigne la chaine de caractères définissant la signature de la fonction dans le fichier ? ...ou bien tout le code source du fichier javascript ? (rien compris)
    Si c'est bien le cas, c'est bien le "tour de force" qui m'a fait un choc tout-à-l'heure... j'espère que marts sera plus loquace demain ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  14. #14
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Désolé de balancer ça comme ça, je vais essayer d'éclaircir un peu ...

    Citation Envoyé par Bovino Voir le message
    Cela implique que tu passes par un constructeur de fonction (new Function) ce qui est assez rare...
    Non, en fait ça marche aussi bien avec l'instruction "function" et avec l'opérateur "function" (qui utilisent tous deux le constructeur Function).
    De n'importe quelle manière que ce soit, toute fonction déclarée après ça acquiert getArgumentsNames comme propriété.
    Mais on n'est pas obligé de faire ça, on peut déclarer une simple fonction qui prend en argument la fonction dont on veut les arguments (c'est difficile à expliquer ! ).


    Citation Envoyé par RomainVALERI Voir le message
    la référence à this au sein de la fonction désigne la chaine de caractères définissant la signature de la fonction dans le fichier ? ...ou bien tout le code source du fichier javascript ? (rien compris)
    this fait référence à l'objet appelant, c'est à dire la fonction à laquelle est appliquée getArgumentsNames.
    En toute rigueur, j'aurais dû écrire this.toString(), qui renverrait la fonction sous forme de chaine ("function (...) {...}"), mais comme exec attend une chaine en paramètre, toString est appelé automatiquement.


    Pour ce qui est de l'expression régulière, pour tout dire je ne suis pas non plus un expert et celle là n'est pas de moi (récupérée dans le code de Firebug). Mais elle est facile à comprendre.
    Elle contient 2 groupes mémorisés, après "function " :
    1 : ([^(]*) = tout jusqu'à la première parenthèse ouvrante (donne le nom de la fonction)
    2 : ([^)]*) = tout jusqu'à la première parenthèse fermante (donne les arguments de la fonction)

    Ces 2 sous-chaines sont dans le résultat de exec, qui est un tableau avec ces éléments :
    0 : function exemple(arg1, arg2, arg3) (sous chaine correspondant à l'expression régulière)
    1 : exemple (nom de la fonction)
    2 : arg1, arg2, arg3 (arguments de la fonction)

    Il suffit ensuite de splitter l'élément 2 pour avoir la liste des arguments.
    11001.00101.10010.10000.00111

  15. #15
    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 : 47
    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
    Marts, est-ce que tu acceptes de m'épouser ?

    Bon, bref, c'est chouette je comprends mieux l'ensemble et je vais tester ça direct heu... rectification : je vais tester ça demain, ma fille se lève dans pas longtemps... au lit ^^

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  16. #16
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Citation Envoyé par RomainVALERI Voir le message
    Marts, est-ce que tu acceptes de m'épouser ?
    Heu ... non, désolé, je suis déjà casé.
    Mais ça me va droit au coeur.
    11001.00101.10010.10000.00111

  17. #17
    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 : 53
    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
    Citation Envoyé par marts Voir le message
    Elle contient 2 groupes mémorisés, après "function " :
    1 : ([^(]*) = tout jusqu'à la première parenthèse ouvrante (donne le nom de la fonction)
    2 : ([^)]*) = tout jusqu'à la première parenthèse fermante (donne les arguments de la fonction)

    Ces 2 sous-chaines sont dans le résultat de exec, qui est un tableau avec ces éléments :
    0 : function exemple(arg1, arg2, arg3) (sous chaine correspondant à l'expression régulière)
    1 : exemple (nom de la fonction)
    2 : arg1, arg2, arg3 (arguments de la fonction)

    Il suffit ensuite de splitter l'élément 2 pour avoir la liste des arguments.
    Oui, mais là tu ne récupères pas les arguments implicites ? Juste les arguments passés en paramètre...

    Ceci dit, m[2], je connaissais pas comme notation pour récupérer les back references...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  18. #18
    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 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    Wazaaaaa comment j'ai pas été assez rapide sur ce coup là ...

    j'étais parti aussi sur les regExp, je vous livre ma proposition:

    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
    <script language="JavaScript">
     
    function choix(param1,param2, param3) {
     
    }
     
    Function.prototype.getArgNames=function(){
    	reg=/function\s+\w.*\((.*)\)/ 
       var args=reg.exec(this);
       args=RegExp.$1.replace(/\s/g,'').split(',')
       alert(args)
       }
     
    choix.getArgNames()  
     
    </script>
    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 !

  19. #19
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Oui, mais là tu ne récupères pas les arguments implicites ? Juste les arguments passés en paramètre...
    Si tu appelles arguments implicites les arguments effectivement passés à la fonction lors de son appel, ils sont récupérables depuis l'intérieur de la fonction avec l'objet "arguments".
    Là il s'agissait de récupérer les identifiants des arguments, c'est à dire les noms qu'utilise le corps de la fonction pour identifier les valeurs passées.
    Citation Envoyé par RomainVALERI Voir le message
    Ce que je voudrais, c'est accéder aux identificateurs utilisés pour nommer les arguments dans la signature de la fonction.
    Exemple, dans ce bout de code imaginaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function afficher(nom, score)
    {
       // ...
    }
    Je sais récupérer le nom de la fonction, à savoir la chaîne "afficher", mais comment récupérer les chaines "nom", et "score" (attention nous sommes bien d'accord : je ne parle pas du nom "bebert" et du score "122" qui sont les valeurs passées ponctuellement à tel appel...)
    11001.00101.10010.10000.00111

  20. #20
    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 : 53
    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

    J'étais complètement à l'ouest moi, je parlais depuis le début des arguments non passés en paramètres de la fonction mais quand même transmis (typiquement, l'argument event lors d'un événement) !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/08/2012, 12h36
  2. [XStream] Est-il possible de récupérer les commentaires ?
    Par redelion dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 29/06/2011, 14h47
  3. Réponses: 2
    Dernier message: 16/07/2008, 16h36
  4. Réponses: 4
    Dernier message: 29/04/2007, 13h40
  5. Est-il possible d'exporter les données?
    Par frutix dans le forum Débuter
    Réponses: 8
    Dernier message: 21/06/2004, 10h27

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