javascript - 为什么这个函数不返回任何值?

标签 javascript function return

我需要将变量传递给另一个函数,但它没有返回任何东西。 注意:它不会向外部返回任何内容,但如果我在函数内部执行 document.write,它会完美地工作..

<script type="text/javascript"> 
//funtion1
    if (navigator.geolocation){
        navigator.geolocation.getCurrentPosition(Location);
        }
    function Location(position){
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
    return (latitude,longitude);
        }


//function2
    function initialize() {
        document.write(latitude);
        document.write(longitude);}
</script>

最佳答案

您误解了一些概念。

首先,return (a, b) 将评估为return b。几乎从不需要逗号运算符。如果要返回数组,请使用 return [a, b]

其次,getCurrentPosition 是异步的。如果找到位置,它将执行 Location。所以在你调用 document.write 时,位置还没有被获取。

最后,您根本没有使用返回值。如果要使用函数的返回值,请使用例如var 结果 = func(...)。然而,在这种情况下,这是没有意义的。

我不完全知道你在追求什么,但任何依赖于位置的东西都应该放在回调中(在本例中为 Location)。只有当回调被调用时,毒药才可用。在此回调中返回一些东西是没有意义的,因为返回值不用于 getCurrentPosition

编辑:查看您的代码,您想要这样的东西而不是returning:

function Location(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;

    useValuesForSomethingElse(latitude, longitude); // call other function with position data
}

关于javascript - 为什么这个函数不返回任何值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415174/

相关文章:

php - 如何返回多个值?

c++ - 取消引用不返回的函数时会发生什么?

javascript - 如何显示每个图像上传的上传进度

javascript - 扩展应用程序 : Uncaught TypeError: undefined is not a function

javascript - 如何在 View 中包含 js 文件。 ASP.NET MVC 4

python - 为什么我的递归函数返回 None?

java - java中返回空数组字符串

javascript - Jquery 滑出菜单项

function - 对函数声明和原型(prototype)感到困惑

检查一个数组是否在另一个数组内 - C 编程