[英]accessing variable value outside of function
我的腳本中有2個函數。 功能1的目的是產生一個稱為“ mapsURL”的網址
第二個功能的目的是使用“ mapsURL”運行.ajax請求
但是我在第二個函數中訪問“ mapsURL”時遇到問題。 我在第一個函數中聲明了“ mapsURL”,而在函數中未聲明“ var”。 以我的理解,這應該使this成為全局值,並且我應該能夠在其他函數中訪問它。 我的理解不正確嗎?或者我在這里想念什么?
這是我的js:
注意:我刪除了本文的API密鑰,所以這不是問題
$(document).ready(function (){ navigator.geolocation.getCurrentPosition(function (position) { var positionLat = position.coords.latitude var positionLon = position.coords.longitude mapsURL = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + positionLat + "," + positionLon + "&key=***mykeygoeshere***"; }); function getData (){ $.ajax({ url: mapsURL, dataType: 'json', success: function(response){ console.log(response); } }); }; getData(); });
getCurrentPosition
是異步的。 它不會立即分配給mapsURL
,因此,當您同步調用getData
,尚未填充mapsURL
。
您應該在getCurrentPosition
回調內調用getData
這還將使您避免使用全局變量:
$(document).ready(function() {
navigator.geolocation.getCurrentPosition(function(position) {
var positionLat = position.coords.latitude
var positionLon = position.coords.longitude
var mapsURL = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + positionLat + "," + positionLon + "&key=***mykeygoeshere***";
getData(mapsURL);
});
function getData(mapsURL) {
$.ajax({
url: mapsURL,
dataType: 'json',
success: function(response) {
console.log(response);
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.