Анонимные функции в JavaScript

Всем привет, подскажите пожалуйста, для чего и в каких случаях используются анонимные функции, и вообще как они выглядят в JavaScript, чем отличаются от обычных функций? раньше с таким названием сталкивался только в C#, был бы признателен примерчику, заранее благодарю!)

Тут лучше всего показывать на примере, но насколько я понял, это функция которую не записывают в переменную, делают такое в случае если переменную следует использовать только один раз, вот пример анонимной функции:

function inputNumber(promptTask, option1, option2) {
if (prompt(promptTask)>=100) option1()
else option2();
}

inputNumber(
"Введите число больше 100",
function
() { alert("Вы ввели число больше или равно 100."); },
function
() { alert("Вы ввели число меньше 100."); }
)
;

Такие функции полезны при взаимодействии пользователя со страницей, их используют для создания интерфейсов если не ошибаюсь. В этом примере мы так же не записываем функцию в какую либо переменную, а создаем так сказать анонимную функцию, которая работает только один раз и не используется нигде больше, вот так она собственно и выглядит. Можно конечно переписать этот пример немного по другому, и создать функции присвоив их именам определенным и передавать имена в большую функцию. Вот так:

function inputNumber(promptTask, option1, option2) {
if ( prompt(promptTask)>=100) option1()
else option2();
}


function option1() {
alert("Вы ввели число больше или равно 100.");
}
function option2() {
alert("Вы ввели число меньше 100.");
}

inputNumber("Введите число больше 100", option1, option2);

Так можно тоде записывать, но в этом примере мы задаем параметр не анонимными функциями а обычными declarative. Тоесть анонимная одноразовая и не получает идентефикатора, этим она и отличается от обычной