2015-11-18 5 views
5

Ich habe diesen Code unten:Funktion gibt 'undefined' Wert

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); 
} 

Es alarmiert zweimal:

enter image description here

enter image description here

Warum wird der Wert return 'undefined'? Es muss 1 sein. Wo vermisse ich?

+4

Weil Ihre Funktion 'myid_templates_editor_image_id_generator' nichts zurückgibt. Fügen Sie das Schlüsselwort "return" vor dem einen Ausdruck in seinem Textkörper hinzu. Javascript hat keine impliziten Rückgabewerte. –

+1

Weil Sie im Bereich 'myid_templates_editor_image_id_generator' nichts zurückgegeben haben. –

Antwort

4

Funktion myid_templates_editor_image_id_generator gibt nichts zurück. Die einzige Return-Anweisung, die Sie haben (return a;), beendet function($){...}, aber es wird nicht in äußere Funktion propagiert.