begin process at 2012 05 29 04:30:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Function & Méthodes

 > 

Comment passer les arguments d'une fonction à une autre ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment passer les arguments d'une fonction à une autre ?

lundi 18 décembre 2006 à 15:40:55 | Comment passer les arguments d'une fonction à une autre ?

roro06



Bonjour

Comment faire passer les arguments d'une fonction à une autre ? Je m'explique : soit f1 et f2 deux fonctions. Dans le contexte suivant :
function f1()
    {
    f2(f1.arguments)
    }

function f2()
    {
    for (var i=0; i<arguments.length; i++) document.writeln(i + ":" + arguments[i]);
    }

window.onload=function()
    {
    f1("test1", "tests2")
    }


je voudrais faire passer les arguments qui ont été transmis à f1 (et dont on ne connaît ni le nombre, ni le type) à la fonction f2. L'exemple ci-dessus affiche
0:[object Object]  (ce qui, après réflexion, paraît logique).

Quelqu'un saurait-il m'aiguiller pour que mon affichage soit :
0 : test1
1 : tests2

D'avance merci

Cordialement
Roro webDev
lundi 18 décembre 2006 à 16:39:41 | Re : Comment passer les arguments d'une fonction à une autre ?

bultez

Membre Club




Bonjour,

function f2(b)
{
  for (var i=0; i<b.length; i++)
  {
   document.writeln(i + ":" + b[i]);
  }
}

   ... bof ...


            Cordialement          Bul       [mon Site]    [M'écrire]
lundi 18 décembre 2006 à 16:50:25 | Re : Comment passer les arguments d'une fonction à une autre ?

roro06



Bonjour

non, c'est pas ça

Cordialement
Roro webDev
lundi 18 décembre 2006 à 17:03:32 | Re : Comment passer les arguments d'une fonction à une autre ?

bultez

Membre Club
ça fait ce qui est demandé ! même si je comprend bien
   que ce n'est pas comme ça que tu veuilles faire.
construire dans une variable : "f2(" + f1.arguments[#] + ")" ,
puis eval ( beurk ! ) ? ... re bof ...
car il doit y avoir plus élégant que ces 2 possibilités ( doux euphémisme )

                     Cordialement       Bul    [mon Site]    [M'écrire]
lundi 18 décembre 2006 à 17:54:29 | Re : Comment passer les arguments d'une fonction à une autre ?

bultez

Membre Club
Réponse acceptée !




je ne pensais même pas que cela marchait, et pourtant...

function t1()
{
 t2();
}
function t2()
{
 for ( var n=0;n<t1.arguments.length;n++)
 {
  alert(t1.arguments[n]);
 }
}

t1("a","b","c");

ça ne répond pas encore tout à fait à ce que tu 
   souhaites je présume... mais...

                     Cordialement       Bul    [mon Site]    [M'écrire]
mardi 19 décembre 2006 à 09:57:01 | Re : Comment passer les arguments d'une fonction à une autre ?

roro06

Réponse acceptée !


Bonjour

"Pas encore tout à fait", mais quasiment quand-même. La solution que je viens de trouver, grâce à toi, sera :

function t1()
{
 t2();
}


function t2()
{
    if(t2.caller)
    {
    for ( var n=0; n<t2.caller.arguments.length;n++)
        {
        alert(t2.caller.arguments[n]);
        }
    }
    else
 
    for ( var n=0; n<arguments.length;n++)
        {
        alert(arguments[n]);
        }
 
  
}

t1("a","b","c");

(Le but n'était pas, tu l'aura compris, d'afficher les arguments, mais de pouvoir instancier des "sous-objets").

Merci beaucoup pour ton aide

Cordialement
Roro webDev
mardi 19 décembre 2006 à 10:47:10 | Re : Comment passer les arguments d'une fonction à une autre ?

bultez

Membre Club
Bonjour,
   je me doutais bien que l'affichage n'était là que "pour l'exemple".
   je vais mettre ta solution précieusement de coté,
      ça peut être très utile. c'est nickel.

            Cordialement       Bul       [mon Site]    [M'écrire]
jeudi 21 décembre 2006 à 21:50:52 | Re : Comment passer les arguments d'une fonction à une autre ?

FREMYCOMPANY

Réponse acceptée !
function f1() {
    f2.apply(this, arguments)
}

function f2() {
}

Pourquoi notre PC fait-il toujours ce qu'on lui dit ... et pas ce qu'on veut ???

vendredi 22 décembre 2006 à 07:06:14 | Re : Comment passer les arguments d'une fonction à une autre ?

bultez

Membre Club
très très bien apply !    Bravo.gif   merci,bravo FremyCompagny
comme quoi le JavaScript c'est quand même un
   superbe langage... mais quid d'une doc ?...

                        Cordialement             Bul       [mon Site]    [M'écrire]
vendredi 22 décembre 2006 à 12:03:22 | Re : Comment passer les arguments d'une fonction à une autre ?

FREMYCOMPANY

De rien !

Sinon, tu as aussi call: f2.call (this, arguments[0], arguments[1], ...)

Dans call et apply le premier argument est ce qui va représenter "this" dans la fonction.

Sot:
function f1() { return f2.call(new Object()); }
function f2() { this.value=3; }

f1() renvera { "value": 3 }

Pourquoi notre PC fait-il toujours ce qu'on lui dit ... et pas ce qu'on veut ???


1 2

Cette discussion est classée dans : fonction, passer, f2, f1, arguments


Répondre à ce message

Sujets en rapport avec ce message

Désactiver les touches de fonction F1-F12 [ par Bebert ] Bonjour, j'aimerais désactiver les touches de fonction du clavier F1-F12. Or, j'utilise l'évenement onkeydown et je test l'event.keyCode entre 112 et affichage "en temps et en heure" [ par bultez ] [size=1][b][brown]Bonjour à tous[black]les "input text" ne s'affichent qu'en fin de la routinewindows.status au fur et à mesure de l'avancementest-ce [JS]Simuler l'appuis sur un lien [ par Sarvok ] Hello tous,J'ai encore besoin de vous !En fait, j'ai fait un tit script qui me permet de changer des descriptions et des prixs, dans une page, sans ch comment passer un id en argument de (mini) fonction ? [ par fixeurman ] J'ai la fonction 1 qui met écrit une date en haut d'une boite de texte dans un formulaire mais si j'ai plusieurs boites de texte Comment puis-je passe Réaffecter F1 F2..F12 [ par meniou ] Salut a tous, j'essai actuellement de réaliser une interface graphique dans laquelle, je me sert de raccourci clavier tels que F1,F2,F3 et F4. J'arriv Passer une variable d'une fonction javascript à un object classid [ par llnis ] Bonjour, J'ai besoin d'intégrer dans une url une variable générer par une fonction javascript du style : function display(){ var chiffdujour = 13880; Passer une variable d'un formulaire dans une fonction javascript [ par ohanssens ] Voilà une question sur laquelle je bloque.Je voudrais faire passer une valeur d'un élément de formulaire dans un popup via une fonction Javascript.Cel chercher fichier dans repertoire [ par tonytruand ] Bonsoir à tousJ'aurai besoin d'un coup de main svpJ'aimerais recupérer dans le répertoire Temporary internet file les fichiers contenant dans leur nom Passer du texte complexe en argument ! [ par hAdEsS ] Bonjour à tous,alors je suis en train de développer un petit site de monitoring, et je doit utiliser une fonction ajax pour générer mes graph en tps r probléme de firefox [ par debutantnet ] je voudrais  savoir pourqoi ce script ne fonctione  pas en firefox function scrollTwin(f1, f2){ document.frames[f1].document.body.onscroll = function(


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,855 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales