Der JavaScript-Rückgabewert ist immer undefiniert

Ich versuche, die 2 Attribute der getrennten Funktion abzurufen, und ich debugge dort Werte vor dem Ende der Funktion und sie haben einen Wert, aber der Rückgabewert ist immer noch ungeklärt. Ich weiß nicht warum !!

die .js Datei

function STAAPlanlat(){
  alert ("the function");

  if (navigator.geolocation) {
    //we supposed to call the handlers of the expections 
    navigator.geolocation.watchPosition(function(position) {
      alert("show position ");
     //  x.innerHTML="Latitude: " + position.coords.latitude +"<br />Longitude: " + position.coords.longitude;  
      var lat=position.coords.latitude;
      var lan=position.coords.longitude;    

      //x.innnerHTML=out
      alert(lat+"<"+lan);
      return lan;
    });

  } else {
    alert("error");
  }
}

Ich habe die Warnung mit den Werten von lan und lat erhalten

Aber wenn ich eine separate Datei aufrufe, wird ein undefinierter Rückgabewert zurückgegeben

 <!DOCTYPE html>
 <html>
 <head>
     <script type="text/javascript" src="STAAP1.2.js"> </script>

 <script type="text/javascript">
     function test(){
     var out=STAAPlanlat();     
     document.getElementById("STAAPlanlat").value = "lan is"+out;
     //document.writeln("lan is"+out);
     }
     </script>  
 </head>
 <body>
 <p id="STAAPlanlat">Test the division</p>
 <button onclick="test()">STAAPlanlat()</button>
 <button onClick="alertme()" >Alert</button>

 </body>
 </html>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage