我一直在玩 JavaScript,有些东西我不太明白。我在这里有这段代码:
$.getJSON('data.json', function(obj) {
for( var p in obj.List )
{
datas['id'] = obj.List[p].ListingId;
datas['area'] = area;
//console.log(datas);
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': datas['area'] }, function(results,status)
{
if(status == google.maps.GeocoderStatus.OK)
{
var latlng = new google.maps.LatLng(results[0].geometry.location.Ya, results[0].geometry.location.Za);
datas['latlng'] = latlng;
//console.log(datas);
}
});
}
});
好的,现在假设 for 循环运行 3 次。如果我们取消注释第一行“console.log(datas)”并运行页面,在控制台中我们会看到 3 个“datas”对象,它们有自己的“id”和“area”。如果我在地理编码回调中注释第一个“console.log(datas)”并取消注释第二个“console.log(datas)”,当我运行代码时,所有 3 个“datas”对象在“ id”、“区域”和“latlng”。而我预计这 3 个“数据”对象会因它们自己的 latlngs 而不同。
有任何想法吗?