n° 219
Novembre 2017
Luglio 18, 2018, 12:54:27 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: function() dentro una funzione: a che serve?  (Letto 793 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
principioattivo
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 15


Mostra profilo
« inserita:: Aprile 16, 2018, 03:42:32 »

Osservate questa funzione:

Codice:
function wrapValue(n)
        {
            var localVariabile = n;
            return localVariabile = n;
            return function()
            {
                return localVariabile;
            }            
        }

Il primo return restituisce n.
Non capisco le righe successive:

Codice:
return function()
            {
                return localVariabile;
            }       
       
Qualcuno mi da una mano a comprendere cosa viene restituito?
Registrato
Roberto Allegra
Global Moderator
Hero Member
*****

Karma: +50/-1
Scollegato Scollegato

Messaggi: 2103



Mostra profilo WWW
« Risposta #1 inserita:: Aprile 17, 2018, 10:48:08 »

Il codice di quella funzione è insensato a causa della riga "return localvariabile = n;", che imposta localvariabile a n, e restituisce il controllo al chiamante. Quindi la riga successiva non verrà mai eseguita.

Togliendo quella riga, il codice ha un po' più senso:

Codice:
       function wrapValue(n)
        {
            var localVariabile = n;
            
            return function()
            {
                return localVariabile;
            }            
        }

In questo modo ciò che viene restituito è una funzione, non un valore. Questa funzione può essere richiamata in un secondo momento, e restituirà banalmente il valore passato al momento della chiamata a wrapValue.

Esempio di uso:

Codice:
function main() {
    var miaFunzione = wrapValue(5);   //miaFunzione ora punta a una nuova funzione, che restituisce 5

    alert(miaFunzione());     //richiamiamo miaFunzione(), e otterremo 5
}
Registrato

I moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines