如何在函数之外获取数据,我尝试全局变量但它不起作用? [复制]
Posted
技术标签:
【中文标题】如何在函数之外获取数据,我尝试全局变量但它不起作用? [复制]【英文标题】:how can I get the data outside the function, i try global variable but its not working? [duplicate] 【发布时间】:2020-12-07 20:48:23 【问题描述】:我尝试了这种方法,它创建了一个全局变量,但它不起作用:
var long;
var lat;
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition);
else
alert("Geolocation is not supported by this browser.");
function showPosition(position)
// console.log(position.coords.latitude)
// console.log(position.coords.longitude)
lat = position.coords.latitude;
long = position.coords.longitude;
// console.log(lat)
// console.log(long)
console.log(lat) // the output is undefined
console.log(long) // the output is undefined
window.addEventListener('load', getLocation());
输出是
未定义 未定义
我怎样才能在函数之外拥有这些数据??
【问题讨论】:
您的日志语句在侦听器处理程序被调用之前执行 @ken4z 我试了一下还是不行 【参考方案1】:你的代码中的lat和long是局部变量,所以如果你在函数中改变它们,全局变量不会改变。有几种方法可以解决这个问题。一种方法是使用对象概念。
var location = long: "", lat: ""
function getLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(showPosition);
else
alert("Geolocation is not supported by this browser.");
function showPosition(position)
// console.log(position.coords.latitude)
// console.log(position.coords.longitude)
location.lat = position.coords.latitude;
location.long = position.coords.longitude;
// console.log(lat)
// console.log(long)
console.log(location.lat) // the output is undefined
console.log(location.long) // the output is undefined
window.addEventListener('load', getLocation());
第二种方法是返回 lat 和 long 值作为函数的结果。
【讨论】:
以上是关于如何在函数之外获取数据,我尝试全局变量但它不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试折叠 onclick 方法上的导航栏,但它不起作用
如果全局不起作用,在Python中访问for循环之外的变量?