javascript - 格式化回调函数的返回值

标签 javascript google-maps google-maps-api-3 callback

我正在使用 google map v3 创建一个简单的库。其概念是将google maps的每一个特征都分解成模块化的函数,例如调用geolocation只会返回坐标,这样这个坐标就可以用来显示 map ,或者解码成地址字符串,或者作为标记位置。谷歌地图是异步的,为了实现这些“模块化”,每个函数都必须有回调,将值返回到回调 block 中。

我在下面使用一个简单的例子:

//simple functions
function set(callback) {
    var test = 'a String';
    callback(test);    
}
function print(val) {
    alert(val);   
}

//run

set(function(){
    print(arguments[0]); 
    //will be followed by another function, dll
});

如您所见,在回调 block 内,我可以通过访问 arguments 变量来检索返回值。嗯,是的,即使它有效,它看起来也没有信息。我想要实现的是如何将arguments重命名为信息性的东西,例如lonlat等。因此,我不必访问 x 的 arguments[0] 和 y 的 arguments[1],它们因函数而异。

我的期望是,使用上面的示例,是否可以调用 print(test) 而不是 print(arguments[0]) ?我希望使用我在 callback(//here//) 中转储的确切变量值和名称,而无需在它之前创建任何全局变量。

提前致谢

最佳答案

你不能在 set 中使用你给局部变量的名字,但你可以在你传递的函数中命名它 into set:

set(function(test){
    print(test); 
    //will be followed by another function, dll
});

...这可以说更有用,因为您在要使用它的地方命名它。

关于javascript - 格式化回调函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21545880/

相关文章:

Javascript 变量在撇号后被 chop

javascript - Angular JS - 来自另一个输入值的输入值

angular - 从外部 AGM 谷歌地图引用标记

php - 如何离线使用谷歌地图从 mysql 数据库映射位置?

google-maps - Ionic native Google map 无法正确显示

google-maps - 谷歌地图 : open InfoWindow on mouseover, 点击关闭并重新打开

javascript - 从 `array` 中移除 `<select>` 中的元素

javascript - javascript 中的闭包理解

javascript - 连接对象中的两个值

javascript - 打开 GoogleMaps 应用程序,以便从网站在 Android 上进行导航