gpt4 book ai didi

javascript - JavaScript 代码中出现奇怪的 "Undefined variable"

转载 作者:行者123 更新时间:2023-11-28 09:42:21 24 4
gpt4 key购买 nike

我是一名 C++ 程序员,因此 java 脚本中的以下 undefined variable 错误对我来说很奇怪。我定义了一个全局变量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;
}
});
}

最后一个 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 is undefined

我该如何解决这个奇怪的行为?谢谢。

最佳答案

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

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

关于javascript - JavaScript 代码中出现奇怪的 "Undefined variable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12225219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com