我正在使用谷歌地图v3创建一个简单的库。这个概念是将谷歌地图的每个功能划分为模块化功能,例如,调用地理定位将仅返回坐标,以便此坐标可用于显示地图,或解码为地址字符串,或作为标记位置。 Google Maps是异步的,为了实现这些“模块化”,每个函数都必须具有将值返回到回调块的回调。
我在下面使用一个简单的例子:
//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
});
如您所见,在回调块中,我可以通过访问arguments
变量来检索返回的值。是的,尽管它有效,但它看起来并不具备信息。我想要实现的是如何将arguments
重命名为信息性,例如lon
,lat
等。所以我不必访问参数[0]表示x,参数[1]表示y,它与函数不同。
我的期望是,使用上面的示例,是否可以调用print(test)
而不是print(arguments[0])
?我希望在callback(//here//)
内使用精确的变量值和名称,而不在它之前创建任何全局变量。
提前致谢
答案 0 :(得分:2)
你不能使用你在set
内给出局部变量的名称,但你可以在你将传递给 set
的函数中命名:
set(function(test){
print(test);
//will be followed by another function, dll
});
...这可能更有用,因为你将它命名为你要使用它的地方。