problema con funzioni annidate

valerio matrix

Nuovo Utente
7 Mag 2015
33
0
6
Buongiorno. Ho un problema con due funzioni annidate. la prima restituisce il valore corretto, la seconda no, mi restituisce undefined. Vi posto il codice con lapremessa che è stato realizzato a scopo educativo. Sto imparando adesso js
Codice:
 var a;
a = prompt("inserisci operatore");
function operazione (b, c) {
  var e;
  if (a=="+")
     e = b+c;
  else if (a=="-")
     e = b-c;
  else if (a=="*" || a=="/")
    
  return e=operazione2(b, c);
    
    else
      alert ("non è una addizione o sottrazione");
  return e ;
}


var f = operazione(4, 2);
console.log(f);
      

 function operazione2 (b, c) {
      if (a=="*")
         e = b*c;
      else if (a=="/")
         e = b/c;
      else
        alert ("non è una divisione o moltiplicazione");
   return;
    }
 
Ciao, nella funzione 2 la variabile "e" non è visibile. devi renderla pubblica mettendola al di fuori delle funzioni come hai fatto con la var a, in più manca il return nella seconda funzione.
 
Ciao, nella funzione 2 la variabile "e" non è visibile. devi renderla pubblica mettendola al di fuori delle funzioni come hai fatto con la var a, in più manca il return nella seconda funzione.
Grazie, ora funziona. Il return mancante me ne ero accorto ma la variabile "e" pensavo venisse passata automaticamente nella seconda funzione. Ho dichiarato la variabile in locale "all'interno della funzione" e il codice adesso funziona.
 

Discussioni simili