创建要在其他函数中使用的全局变量
Creating a global variable to be used in other functions
有人可以向我解释为什么当我尝试在函数外部访问它时,即使它是对象的一部分,为什么'currentPos.LatLng'是未定义的?基本上,我试图能够获取我当前位置的值,以便我可以在另一个函数中再次使用它们。对这个东西很陌生...提前谢谢。
var map;
var infowindow;
var currentPos = {
};
var city = new google.maps.LatLng(60, -105);
function initialize() {
map = new google.maps.Map(document.getElementById('map_canvas'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: city,
zoom: 13
});
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(
function(position) {
pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(pos);
currentPos.LatLng = pos;
console.log(currentPos.LatLng);
},
function() {
handleNoGeolocation(true);
}
);
} else {
handleNoGeolocation(false);
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn''t support geolocation.';
}
}
var request = {
location: city,
radius: 2500,
types: ['store']
};
infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.search(request, callback);
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name);
infowindow.open(map, this);
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
console.log(currentPos.LatLng);
因为当您
尝试记录它时initialize
尚未调用/完成。
您需要将其或您实际要执行的任何操作(或对填充后将访问currentPos
的其他函数的调用(移动到回调内部/分配它之后。
相关文章:
- 在javascript函数中设置全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 创建要在其他函数中使用的全局变量
- 函数中的innerHTML(全局变量?)
- 全局变量只能由第一个函数访问
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 更改函数内部的全局变量而不调用它
- 如何制作全局javascript函数和变量
- 改进js代码以删除全局变量和函数
- 调用函数后如何重置全局变量
- 无法在函数中检索全局变量的值
- 将全局变量传递给自调用函数或“IIFE”的目的
- 保留 JQuery Vars 用于另一个函数(全局变量?)
- 如何在 ajax 调用后更改包装器 JavaScript 函数中的全局变量
- 删除两个函数使用的全局变量
- 如何将socket.on中函数的值保存为全局变量
- angular/javascript无法识别函数内部的全局变量
- Javascript测试存根全局变量函数
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- Javascript从本地向全局变量函数添加行