我想完成的是調用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