Я хочу преобразовать this example code в функцию. Я хочу сделать это, потому что у меня есть 2 поля ввода на одной странице, которые должны использовать этот автозаполнение. Я мог бы сделать это по-старому, как я привык, но я хочу узнать что-то об этом типе программирования. Это то, что я сейчас:Преобразование в анонимную функцию
var Lookup = {
init: function(field) {
this.field = field;
this.autocomplete = null;
this.autocomplete = new google.maps.places.Autocomplete((document.getElementById(this.field)), {
types: ['geocode']
});
this.autocomplete.addListener('place_changed', this.fillInAddress());
},
geolocate: function() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var geolocation = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
var circle = new google.maps.Circle({
center: geolocation,
radius: position.coords.accuracy
});
this.autocomplete.setBounds(circle.getBounds());
});
}
},
fillInAddress: function() {
var place = this.autocomplete.getPlace();
console.log(place);
}
}
я исполню это с:
$(document).ready(function() {
Lookup.init('location_from');
Lookup.init('location_to');
});
Все работает, два поля имеют функцию автозаполнения. Но когда я выбираю адрес я получаю эту ошибку:
Uncaught TypeError: Cannot read property 'apply' of undefined
Это происходит в функции fillInAddress
. Выполняется вызов AJAX (запрашивается дополнительная информация о месте), но затем он останавливается. Может ли кто-нибудь сказать мне, почему это?