Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“奇怪”;未定义变量";在一段JavaScript代码中 我是C++程序员,所以java脚本中的未定义的变量错误对我来说是陌生的。我定义了一个全局变量,directionResult,下面的代码初始化了它的值: function calcRoute() { var iMap = { departure:"tiran,esfahan", destination:"esfahan" } var request = { origin : iMap.departure, destination : iMap.destination, travelMode : google.maps.TravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); document.getElementById("log").innerHTML = result.routes[0]; directionResult = result; } }); }_Javascript - Fatal编程技术网

“奇怪”;未定义变量";在一段JavaScript代码中 我是C++程序员,所以java脚本中的未定义的变量错误对我来说是陌生的。我定义了一个全局变量,directionResult,下面的代码初始化了它的值: function calcRoute() { var iMap = { departure:"tiran,esfahan", destination:"esfahan" } var request = { origin : iMap.departure, destination : iMap.destination, travelMode : google.maps.TravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); document.getElementById("log").innerHTML = result.routes[0]; directionResult = result; } }); }

“奇怪”;未定义变量";在一段JavaScript代码中 我是C++程序员,所以java脚本中的未定义的变量错误对我来说是陌生的。我定义了一个全局变量,directionResult,下面的代码初始化了它的值: function calcRoute() { var iMap = { departure:"tiran,esfahan", destination:"esfahan" } var request = { origin : iMap.departure, destination : iMap.destination, travelMode : google.maps.TravelMode.DRIVING }; directionsService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); document.getElementById("log").innerHTML = result.routes[0]; directionResult = result; } }); },javascript,Javascript,最后,ifdirectionResult将等于result,这是回调函数的一个参数。但在另一个功能中: function showSteps() { var myRoute = directionResult.routes[0].legs[0]; var point = myRoute.steps[index].start_point; var inst = myRoute.steps[index++].instructions; obj.setPosition(

最后,if
directionResult
将等于
result
,这是回调函数的一个参数。但在另一个功能中:

function showSteps() {
    var myRoute = directionResult.routes[0].legs[0];
    var point = myRoute.steps[index].start_point;
    var inst = myRoute.steps[index++].instructions;
    obj.setPosition(point);
    document.getElementById('inst').innerHTML = inst;
    map.panTo(point);
    if (index >= myRoute.steps.length)
        clearInterval(timer);
} 
当我想在第一行使用
directionResult
时,我遇到以下错误:

TypeError:directionResult未定义


如何解决此奇怪行为?谢谢。

directionResult未定义的一个可能原因可能是您试图在设置之前引用它。尽管showSteps()函数出现在calcRoute()函数之后,但directionResult直到DirectionService.route()回调被激发后才被设置,这可能是在AJAX请求之后发生的


请尝试从directionsService.route()回调函数中调用showSteps()。

是否可以打开代码?这里没有足够的信息说明问题。其他函数是否在同一个JavaScript文件中?您可能试图从错误的范围访问变量。是否确认
result
在写入
directionResult
时未定义该变量?我猜您的showSteps()函数是在传递给directionservice.route()的回调执行之前被调用的。@Mythril使用tilde键(上面的另一个字符)在注释中执行代码时。