Newsgroup: it.comp.lang.javascript
Titolo: si puo chiamare una funzione mettendone i noem all'niterno di una variabile?

è possibile, da una funzione, chiamarne un'altra mettendone il nome
dentro a una variabile??
es
nella funzione Prova() c'è la variabile f = "Prova1()" e fare in modo
di chiamare la funzione Prova1() utilizzando la variabile f ?

 ha scritto nel messaggio
news:83o29t4oiug27qc1p...@4ax.com...

questo piccolo esempio ti da la risposta.....
<html>
<head>
<script language="JavaScript">
function aa(){
alert('pippo')
}
f=aa()
</script>
</head>
<body onload="f">
</body >
</html>
andreotta fabiano
 WebMªster ATI POWER s.n.c.
 
andr...@atipower.it
 
http://www.atipower.it
    -new-
 
http://www.afdsoftware.freeweb.org
 
http://www.jsdir.com

 di chiamare la funzione Prova1() utilizzando la variabile f ?
  Se e' f e' una generica variabile con una assegnazione del
 tipo var f=Prova1(); di no di certo perche' f assume il valore
 di ritorno della funzione e non ha memoria di quale oggetto lo
 abbia generato. Bisogna definire una precisa variabile oggetto
 che faccia riferimento alla funzione Prova1(). Allo stesso modo
 in cui in linguaggio C ci sono i puntatori a funzione  c'e' qualcosa
 di analogo nella programmazione basata sugli oggetti di javascript.
<HTML lang=it" dir="ltr">
<HEAD>
  <TITLE>Quicker</TITLE>
<SCRIPT type="text/javascript" language="JavaScript">
  <!--
var spiegazione='The built-in Function object specifies a string\n' +
'of JavaScript code to be compiled as a function.';
     function Prova1() {
       alert(spiegazione);
       return true;
     }
     function Prova() {
       var f = new Function("Prova1()");
       f();
       return true;
    }
   // -->
</SCRIPT>
</HEAD>
<BODY bgcolor="#ffffff">
<FORM>
 <INPUT type="button" value="Pigiami" onClick="Prova();">
</FORM>
</BODY>
</HTML>

 </html>
  Questo tuo piccolo esempio non risponde alla domanda perche'
 le funzioni nella domanda sono due: Prova() e Prova1()
 onLoad e' un evento non una funzione.
  E poi l'esempio e' sbagliato perche'  il messaggio "pippo"
 appare anche senza usare onLoad="f" nel BODY. La funzione aa()
 viene richiamata sempre ad ogni caricamento della pagina.
  E' sbagliato anche nelle intenzioni perche' estendendolo
 per esempio in questo modo:
<html>
<head>
</head>
<body bgcolor="#ffffff">
<form name="form_1">
 <input name="text_1" type="text" value="1" size="3">
 <input type="button" value="x3" onclick="document.form_1.text_1.value=f;">
</form>
<script language="JavaScript">
  function aa(){
  return 3*parseInt(document.form_1.text_1.value);
}
f=aa();
</script>
</body >
</html>
la variabile f viene chiamata una volta sola e
non c'e' la chiamata alla funzione aa() quando
utilizzo la variabile f perche' f ha gia' il valore ritornato
da aa() Percio' non risponde comunque alla domanda di Muttley


bastava che mi scrivevi due parole.......queste.....hai scritto una
c****a!.......magari con qualche faccina :-)))))))))))))))
una spiegazione con questo tono , la prossima volta  risparmiartela ,che non
siamo ne amici ne conoscenti (almeno credo)............e soprattutto , usa
la punteggiatura nelle risposte , la tua sotto , letta da un newbie è
arabo........


 arabo........
  Siamo tutti newbie amico.  Anch'io sono qui per imparare.

 ha scritto nel messaggio
news:83o29t4oiug27qc1p...@4ax.com...

La risposta di atipower e' quasi esatta; ha solo invertito la modalita'
per puntare/chiamare una funzione:
function aa(){alert('pippo')}
f=aa
</script>
</head>
<body onload="f()">
Per valorizzare una variabile con una funzione si omettono le parentesi
(altrimenti la funzione scatta subito) e per chiamare la funzione si
aggiungono al nome variabile valorizzato.
Per combinare due funzioni:
-----------------
function aa(){alert('pippo')}
function bb(){f()}  // chiama la funzione aa tramite la variabile f
f=aa // valorizza f con la funzione aa
bb() // chiama la funzione bb
-------------
Se quello che ti serve e' diverso, riprova con qualche indicazione in
piu'.
Saluti, Paolo