我是 Javascript 的新手,下面的代码让我很困惑。据我了解,您可以通过将 var 放在它们前面来为全局变量赋值,并且在首先声明全局时不需要定义任何初始值。但是,为什么下面的代码不起作用?(不工作是指在 main() 中对 document.write 的调用会为“ulat”吐出“未定义”)。
var ulat;
function write(latitude) {
ulat = latitude;
document.write("<h1> This works:" + ulat + "</h1>");
}
function getloc() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
write(position.coords.latitude);
},
function (error) {
switch(error.code) {
case error.TIMEOUT:
alert ('Timeout');
break;
case error.POSITION_UNAVAILABLE:
alert ('Position unavailable');
break;
case error.PERMISSION_DENIED:
alert ('Permission denied');
break;
case error.UNKNOWN_ERROR:
alert ('Unknown error');
break;
}
});
}
else {
alert("Geolocation is not supported by your web browser.");
}
}
function main() {
getloc();
document.write("<h1> This doesn't work: " + ulat + "</h1>");
}
有什么帮助吗?谢谢!