2010-01-19 1 views
10

Sto utilizzando il codice:Come si imposta una variabile javascript sul ritorno di una funzione inline?

var x = function() {return true;}; 

cercando di impostare x su true, il valore di ritorno della funzione, ma invece x è definita come la funzione stessa. Come posso impostare x come valore di ritorno della funzione? Potrei facilmente codificare questo problema usando una funzione non in linea o qualcosa del genere, ma mi infastidisce perché sono sicuro che ci deve essere una soluzione semplice.

Grazie.

risposta

24

La soluzione è quella di definire la funzione e poi richiamarlo (aggiungendo le parentesi extra alla fine):

var x = (function() {return true;})(); 
6

Non sei l'esecuzione della funzione, si sta impostando x di essere in realtà il funzione.

Se aveste qualche variabile y, potrebbe assumere il valore della funzione con qualcosa di simile:

var x = function(){ return true; }; 
var y = x(); // y is now set to true. 

o in alternativa eseguire la funzione in posizione con:

var x = (function(){ return true; })(); 
2

tuo codice appena definisce la funzione e la assegna a x, la funzione non viene chiamata. Per chiamarlo, inserisci la funzione tra parentesi e aggiungi () dopo, come per una normale chiamata di funzione:

var x = 
     (
      function() { 
       return true; 
      } 
     )();