Я написал функцию, которой разрешаю передавать обратный вызов. Затем я хочу выполнить это как с ответом ajax, так и с другим параметром.
Моя проблема в том, что обратный вызов выполняется, и когда я выполняю шаг по коду, похоже, что функция вызывается с правильными параметрами, однако при фактическом переходе к функции обратного вызова первый параметр принимает значение любого Я назначаю второй аргумент, а второй аргумент - undefined
.
Вот моя функция:
namespace = {
fetch : function(sr, count, callback) {
srCount = count ? count : '25'
var sub;
if (sr == 'frontpage'){
sub = '';
}else{
sub = 'foo/' + sr + '/';
};
$.ajax({
url: "http://www.example.com/"+sub+ ".json?count=" + count,
dataType: "json",
success: function(msg)
{
callback.call(msg, count)
}
})
};
Теперь, когда я называю это так:
mynamespace.fetch($(this).attr('href'), 25, true, another namespace.createPost);
Я бы ожидал, что callback.call(msg, count)
разрешится до callback.call(/*the ajax response*/, 25);
Однако, когда я запускаю его, я получаю msg == 25
и count == 'undefined'
. Я в недоумении, почему ...