gpt4 book ai didi

javascript - 在 Javascript 中检索函数特定变量

转载 作者:行者123 更新时间:2023-12-02 20:21:09 25 4
gpt4 key购买 nike

说到 JS,我几乎是个菜鸟,而且我在这方面遇到了最困难的时期。

我正在使用 Titanium Appcelerator,我需要在下面的函数之外使用 lon/lat 变量,但是,当我调用它们时,它们显示为未定义。如何在函数之外检索这些变量?任何帮助都是值得赞赏的!

function getLocation() {
current.text = "Finding you...";
actInd.show();
currentWindow.setLeftNavButton(actInd);
Titanium.Geolocation.getCurrentPosition(function(e)
{

if (e.error)
{
alert('Can not get your current location');
return;
}
Ti.API.info("Got Location");
var lon = e.coords.longitude;
lat = e.coords.latitude;
altitude = e.coords.altitude;
current.text = lat+" / "+lon;

});
};

最佳答案

你必须改变你思考这个问题的方式。 JavaScript 有一点 functional programming感觉到它,并且你需要这样对待它。特别是在处理异步操作时,例如地理定位。简而言之,这不仅仅是一个范围问题,也是一个执行顺序问题。

这里的基本方法是向 getLocation() 提供一个函数,该函数将依次在正确的步骤执行。

function getLocation( onSuccessCallback ) {
current.text = "Finding you...";
actInd.show();
currentWindow.setLeftNavButton(actInd);
Titanium.Geolocation.getCurrentPosition(function(e)
{

if (e.error)
{
alert('Can not get your current location');
return;
}
Ti.API.info("Got Location");
var lon = e.coords.longitude;
lat = e.coords.latitude;
altitude = e.coords.altitude;
current.text = lat+" / "+lon;

if ( 'function' == typeof onSuccessCallback )
{
onSuccessCallback( lat, lon );
}

});
};

然后,您调用 getLocation()

getLocation( function( lat, lon )
{
Ti.API.info( 'Lat: ' + lat );
Ti.API.info( 'Lon: ' + lon );
});

回顾一下:开始思考您的代码如何以正确的操作顺序执行。考虑回调(或者,lambda)而不是返回值。

关于javascript - 在 Javascript 中检索函数特定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5534715/

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