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

Conception Web Discussion :

joindre une variable à un nom de fonction en javascript


Sujet :

Conception Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut joindre une variable à un nom de fonction en javascript
    bonjour

    j'ai une fonction ( en javascript ) par exemple

    je voudrais remplacer le no 14 par une variable no

    puis appeler ma variable pour que le no change facilement .

    bref

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var no = 14 ;
    function machinno() ;
    j'ai cherché mais je ne sais pas faire .

    est ce que quelqu'un peut m'aider car ceci :

    ne fontionne pas .

    merci

    Suite on peux peut-être écrire

    let no = 14;
    let f = 'machin';
    Nom = f+no;
    Fonction Nom();

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    pour exécuter plusieurs fonctions, vous pouvez les stocker dans un tableau comme cela :
    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
    const fonctions = [
    	e => {
    		console.log("la 1re fonction");
    	},
    	e => {
    		console.log("la 2e fonction");
    	},
    ];
     
     
    fonctions.forEach(fonction => {
     
    	fonction();
     
    });

  3. #3
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut
    Merci Mathieu mais ce n'est pas tout à fait ce que je voulais faire . Je veux juste changer le nom 14 rapidement en 15 car il y aura plusieurs noms finissant par 14.

  4. #4
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut
    bonjour

    j'ai une fonction ( en javascript ) par exemple

    je voudrais remplacer le no 14 par une variable no

    puis appeler ma variable pour que le no change facilement .

    bref

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var no = 14 ;
    function machinno() ;
    j'ai cherché mais je ne sais pas faire .

    est ce que quelqu'un peut m'aider car ceci :

    ne fontionne pas .

    merci

    Suite on peux peut-être écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let no = 14;
    let f = 'machin';
    Nom = f+no;
    Function Nom();

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    montrez nous pourquoi vous avez besoin de cela avec un exemple, vous partez peut-être dans une mauvaise direction.

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Bonjour,

    En Javascript, les fonctions définies au niveau global, tout comme les variables globales, sont considérés comme des objets appartenant à window (parce tout script est censé faire partie d'un document web). Tu peux donc énumérer son contenu et l'indexer pour retrouver la fonction qui t'intéresse et, de là, l'invoquer :

    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function fonction_numero_1()
    {
        console.log("Bonjour de la part de la fonction numéro un.");
    }
     
    var n = 1;
     
    window["fonction_numero_" + n]();

    Cela dit, comme expliqué plus haut, il y a presque TOUJOURS une meilleure manière de faire. Et neuf fois sur dix, la « meilleure des meilleures manières » consiste souvent en un tableau de callbacks comme décrit. Donc, ne considère pas cette proposition comme la réponse à ce que tu attends en estimant que « ça suffit bien pour ce que tu veux en faire », comme on le dit souvent, mais comme un point de départ pour converger doucement vers la meilleure approche.

    Bon courage.

  7. #7
    Membre confirmé
    Avatar de trx337
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Décembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2015
    Messages : 74
    Billets dans le blog
    1
    Par défaut
    voici un morceau de mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function maFontionduree14() {
       
    	var duree14 = videoessai.duration;
        document.getElementById("demoduree14").innerHTML ="durée totale du film:"+ duree14+ " en seconde";
              }
    
    function myFunctionfin14(){
          var fin14 = '<img width="500" src= "images/carte4.jpg">';
          document.getElementById("demofin14").innerHTML = "affiche image de fin<br>"+fin14;
              }
    var tempscourant14 = videoessai;


    vous voyez que le nombre 14 apparait souvent .
    c'est celui la que je voudrais mettre en variable
    car plus tard je n'aurais plus qu'à changer ce numero en 15

    donc ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let n = 14;
    let nomf = "maFontionduree"
    let nomFonction = nomf+n;
    alert(nomFonction);
    fonctionne bien . j'obtiens maFontionduree14

    mais si je l'utilise pour ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function nomFonction() ;
    eh bien ça ne marche pas . le script ne fonctionne pas . il ne transforme pas nomFonction en maFontionduree14.

    Bon mais ceci n'est pas tres grave .

    ceci dit il y a quelque chose qui marche : ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("demofin14");
    on peut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    let n = 14;
    document.getElementById("demofin"+14);
    mais pour

    var duree14;

    on ne peut pas écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    let n = 14 ;
     var duree+n ;
    voilà c'est tout ; et je cherche quelque chose de simple ;
    on peut dire qu'il est difficile de faire ceci sur les noms de fonction ou les noms de variable .
    Le protocole ne l'admet pas . voila voila voila

  8. #8
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    si vous avez plusieurs fonctions qui ont du code en commun, vous pouvez les factoriser comme cela :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function afficher_duree(identifiant_video)
    {
    	const element = document.getElementById(`demoduree${identifiant_video}`);
     
    	element.innerHTML = `durée totale du film : ${videoessai.duration} s`;
     
    }
     
     
    // et donc vous aurez une seule fonction a appeller
    afficher_duree(14);
    afficher_duree(9);

Discussions similaires

  1. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  2. Réponses: 4
    Dernier message: 19/04/2006, 16h03
  3. donner la valeur d'une variable comme nom de table
    Par cladsam dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/10/2005, 15h16
  4. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

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