2015-11-18 29 views
5

ho questo codice qui sotto:funzione restituisce

alert('Returned value : ' + myid_templates_editor_image_id_generator()); 


//Generates unique id for every image created 
function myid_templates_editor_image_id_generator(){  
    (function($){ 
     var a = 1; 
     while(true){      
      if($('#myid_templates_editor_image_' + a).length == 0) {     
       alert('Inside value : ' a); 
       return a;    
      } 
      a++;        
     } 
    })(jQuery); 
} 

Si avvisa due volte:

enter image description here

enter image description here

Perché il valore di ritorno 'undefined'? Deve essere 1. Dove mi sto perdendo?

+4

Poiché la funzione 'myid_templates_editor_image_id_generator' non restituisce nulla. Prova ad aggiungere la parola chiave 'return' davanti all'unica espressione nel suo corpo. Javascript non ha ritorni impliciti. –

+1

Perché non hai restituito nulla nell'ambito di 'myid_templates_editor_image_id_generator'. –

risposta

4

La funzione myid_templates_editor_image_id_generator non restituisce nulla. L'unica dichiarazione di ritorno che hai (return a;) esce da function($){...} ma non viene propagata alla funzione esterna.