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 :

fonction d'arite variable


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 96
    Par défaut fonction d'arite variable
    Bonjour,

    Est-il possible d'ecrire des fonctions d'arite variable sans avoir a faire de la surchage de fonctions (explosion combinatoire).

    d'avance merci.

    PS: et si oui comment et si non y a t-il un moyen simple de faire ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut
    Serais-ce de ça dont tu aurais besoin ?
    https://developer.mozilla.org/fr/Guide_JavaScript_1.5/Utilisation_de_l'objet_arguments

    Tu peux passer par l'objet arguments qui contient la liste des arguments passés à ta fonction.

  3. #3
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Effectivement comme le dit Difré91 tu as l'objet "arguments" qui peut servir si t'as un nombre d'argument inconnu.


    Par contre, si ton cas comporte un nombre d'arguments possibles fixe, mais pas tous utilisés et formant pas mal de combinaison possibles, rien ne t'empêche de définir les arguments et de tester leurs existences. (Les arguments dépendant de leurs place lors du passage de paramètre, pour fournir un argument X, il faut que tous les précédent soient fourni, il est donc conseiller de placer les plus important à gauche lors de la déclaration de la fonction et les optionnels à droite).

    Ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function test(a,b,c,d){
     
    }
    peut être appelée :

    ou pour passer le "b" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test(null, "b"); // une information doit donc obligatoirement être fournie en place du "a" pour fournir un "b", le null est considéré comme une information et peut être remplacé par undefined , ""  ou encore false par exemple, selon les testes d'existence que tu auras défini dans ta fonction test
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function test(a,b,c,d){
        if(a){ // attention aux cas où le type renvoit "faux" selon sa valeur, par exemple, si tu veux afficher un entier de valeur "0" tu devras rajouter une condition.
            alert(a);
        }
        if(b){
            alert(a);
        }
    }

  4. #4
    Membre Expert
    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
    Par défaut
    Une autre méthode assez répandue consiste à utiliser un objet conteneur pour les paramètres, qu'ils soient optionnels ou pas. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function test(params){
       params = params ? params: {};// pour éviter des erreurs en accédant aux propriétés quand l'objet n'est pas fourni
       // bla bla bla du code ici
       // ...
       // exemple d'utilisation d'un des params :
       if (params.etatActif && params.ageDuCapitaine == 42) {
          // ...
       }
    }
    en appelant la fonction de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var obj = {
       etatActif: true,
       nomApplication: "WonderSoft",
       ageDuCapitaine: 42,
       comparerCandidats: function() { /* du code ici */ }
    };
    test(obj);

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    ou encore

  6. #6
    Membre Expert
    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
    Par défaut
    et même : params || params = {}; !

    pas même le temps perdu d'une assignation "tautologique" en cas de param présent ^^

Discussions similaires

  1. fonction replace et variable de type string
    Par aA189 dans le forum Access
    Réponses: 6
    Dernier message: 11/08/2006, 17h38
  2. appel de fonction sans récupération variable
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2006, 11h10
  3. [VB6] Image en fonction d'une variable?
    Par TomIG dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/03/2006, 01h22
  4. Fonctions constantes et variables constantes
    Par TabrisLeFol dans le forum Langages de programmation
    Réponses: 11
    Dernier message: 13/03/2006, 07h37
  5. Réponses: 1
    Dernier message: 20/07/2005, 09h13

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