Анонимная функция знает свою текущую область действия и переменные.
function a() {
var foo = 'test';
$('something').each(function() {
alert(foo);
})
}
Эта функция выдаст предупреждение 'test', поскольку в ее области определено foo
.
function a() {
var foo = 'test';
$('something').each(b)
}
function b() {
alert(foo);
}
Эта функциявызовет ошибку javascript, сообщающую, что переменная foo
не определена.
Если вам нужно определить функцию, которая имеет смысл только в пределах конкретной области, и не хотите разбрасывать множество переменных или пересчитыватьМногое, удобнее определить анонимную функцию.