Я создаю простую библиотеку, используя google map v3. Концепция состоит в том, чтобы разделить все возможности карт Google на модульные функции, например, вызов геолокации возвращает только координату, так что эта координата может использоваться для отображения карты или декодирования в строки адреса или в качестве местоположения маркера. Карты Google асинхронны и для достижения этой «модульности», каждая функция должна иметь обратный вызов, который возвращает значение в блок обратного вызова.Форматирование возвращаемых значений из функций обратного вызова
Я использую простой пример ниже:
//simple functions
function set(callback) {
var test = 'a String';
callback(test);
}
function print(val) {
alert(val);
}
//run
set(function(){
print(arguments[0]);
//will be followed by another function, dll
});
Как вы можете видеть, внутри блока обратного вызова, я могу получить возвращаемое значение путем доступа к arguments
переменным. Ну да, хотя он работает, он не выглядит информативным. То, что я хочу достичь, - , как я могу переименовать arguments
во что-то информативное, такое как lon
, lat
и т. Д. Поэтому мне не нужно обращаться к аргументам [0] для x, аргументы [1] для y, которые отличаются от функция для работы.
Мое предположение, используя приведенный выше пример, можно ли назвать print(test)
, а не print(arguments[0])
? Я ожидаю использовать точные значения переменных и имя, которое я сбросил внутри callback(//here//)
, не создавая перед ним никакой глобальной переменной.
Заранее спасибо
Я вижу, поэтому я могу обернуть несколько переменных в качестве объекта, например, внутри set test = {lat: 12345, lon: 12345}; callback (test), затем используя ваш набор решений (function (test) {print (test. lat)}); и т.д. Спасибо. :), но прежде чем я выберу ответ, я буду ждать альтернатив других людей (позже, если они есть) – AzDesign