Упрощенный код функции:
var func = function(items, errors) {
if (items.length) {
$.post(
'/items/add/',
{id: items.pop()},
function (response) {
if (typeof response.error != 'undefined') {
errors.push(response.error);
} else {
// как осуществить вызов функции из переменной func (рекурсивный вызов)?
...(items, errors);
}
},
'json'
);
} elseif (errors.length) {
alert(errors.join(' '));
}
};
func(new_items, []);
С JS я знаком посредственно, поэтому единственное что пришло в голову - передавать переменную, хранящую функцию, одним из параметров при вызове, т.е.:
var func = function(fself, items, errors) {
...
fself(fself, items, errors);
...
};
func(func, new_items, []);
В крайнем случае можно задать имя функции:
function func(items, errors) {
...
func(items, errors);
...
}
func(new_items, []);
Вопрос в том, можно ли как-то рекурсивно вызывать подобную анонимную функцию без явной передачи данной функции самой в себя?