Я работаю в Javascript над проектом API Карт для работы. У меня возникли проблемы с функцией обратного вызова, которую я передаю GetLocations
, в которой она должна вызывать другой кусок кода (все, что делает обратный вызов, - это сохранять значения lat и lng в объекте). Но после того, как функция выполняет свою работу, следующая функция не вызывается.
Как работает этот обратный вызов? Почему я не могу вызвать какие-либо функции из него? Что может я в ней делаю?
обновление
Хорошо, тестовая функция (которая только что создала окно предупреждения), которую я использовал, снова начала работать магическим образом, и я проверил журнал ошибок (который я забыл существовать раньше), чтобы увидеть, что происходит не так.
Javascript использует прототипную структуру для выполнения некоторого ОО, и функция, которую нужно вызвать, называется "this.Create". Ошибка говорит, что такой функции нет, но она позволяет мне вызывать ее из другого места в коде:
for (var i=0;i<mapObjects.length;i++) {
mapObjects[i] = new mapObject(mapObjects[i]);
mapObjects[i].Create(); //this works
}
mapObject.prototype.SetLocation=function (response) {
this.geoStatusCode = response.Status.code;
alert("entered SetLocation with status code "+this.geoStatusCode);
if (this.geoStatusCode == 200) {
this.lat = response.Placemark[0].Point.coordinates[1];
this.lng = response.Placemark[0].Point.coordinates[0];
alert("calling create()");
this.Create(); //"no such function"
} else {
this.geofailed++;
}
}
Я не очень знаком с Javascript и не очень разбираюсь в прототипе или в том, как он работает, поэтому я понятия не имею, как это решить. Кто-нибудь знает?