我正在使用 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
重命名为信息性的东西,例如lon
、lat
等。因此,我不必访问 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/