我想完成的是调用result.MappingWaypoints[i].lat();
和 result.MappingWaypoints[i].lng();
而不是result.MappingWaypoints[i].lat;
和result.MappingWaypoints[i].lng
。函数内部的函数javascript
这甚至可能吗?
var result = new Array();
result = {
'MappingWaypoints': MappingWaypoints,
'Flightime': flight_time_sec,
'PhotoArea': { 'SouthWest': MeterstoGPS(starting_photo_area),
'NorthEast': MeterstoGPS(end_photo_area)},
};
MappingWaypoints.push(
{
lat : current_point_gps.lat,
lng : current_point_gps.lng,
Radius : 10,
Altitude : Attitude,
ClimbRate : ClimbRate,
DelayTime : DelayTime,
WP_Event_Channel_Value : 100,
Heading : 0,
Speed : Speed,
CAM_Nick : 0,
Type : 1,
Prefix : "P"
}
编辑:我尝试添加:
lat: function(){ return current_point_gps.lat},`
lng : function(){ return current_point_gps.lng},
但是,这并不工作=>数组中的所有值都具有第一坐标的纬度/经度值
EDIT2:谢谢以@DCoder为这个答案在下面的评论:这解决了我。
lat: (function(v) { return function() { return v; } })(current_point_gps.lat)
我知道这似乎是一个奇怪的事情,但我使用一个真正的算法需要存取权限的数据是一个函数调用,因为算法中还从谷歌API处理数据,其中数据仅访问通过相同的函数调用lat()和lng()。感谢:)
除非您创建更复杂的存储解决方案,否则一旦'current_point_gps'的值发生变化,到目前为止给出的答案将会爆炸。 – DCoder
注意 - 你正在混合数组和对象(它们是关联数组),所以当你将它视为一个关联数组/对象时,不要使用'var result = new array()'。 – PhonicUK
@DCoder:你绝对是对的 – Thomas