In javascript le funzioni sono degli oggetti, oppure gli oggetti sono come funzioni.. non l'ho mai capito neppure io...
Fatto sta che una funzione può ricevere come parametro un'altra funzione, nello specifico:
codice:
geocoder.getLatLng(address, callback);
dove callback è una funzione con un parametro.
Tornando al caso specifico, il parametro della funzione di callback viene chiamato point, ma la cosa è del tutto indifferente e qualunque nome sarebbe andato bene.
per chiarire le cose, l'esempio sopra può essere riscritto così (beh.. almeno credo.. resto sempre sconcertato anch'io da queste cose...
):
codice:
var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();
function showAddress(address) {
geocoder.getLatLng( address, miaFunzione );
}
con:
codice:
function miaFunzione (point)
{
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
}
}
Quindi tu chiami la funzione getLatLng dell'oggetto geocoder. getLatLng sa che il secondo parametro è una funzione (la funzione di callback) e la esegue fornendole come parametro un valore. Per convenzione il parametro si chiama point, ma il nome può essere cambiato, l'importante è che all'interno della funzione di callback il nome resti quello.