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

**URL:** <https://forum.itvdn.com/t/anonimnye-funkczii-v-javascript/2755>\
**Category:** JavaScript\
**Created:** [07.11.2018 16:35:53 UTC](https://forum.itvdn.com/t/anonimnye-funkczii-v-javascript/2755 "2018-11-07T16:35:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nailditrich](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/n/779978/32.png) [@nailditrich](https://forum.itvdn.com/u/nailditrich)\
**Post date:** [07.11.2018 16:35:53 UTC](https://forum.itvdn.com/t/anonimnye-funkczii-v-javascript/2755/1 "2018-11-07T16:35:53Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Nikit\_OS69](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/n/eb9ed0/32.png) [@Nikit\_OS69](https://forum.itvdn.com/u/Nikit_OS69)\
**Post date:** [07.11.2018 16:46:51 UTC](https://forum.itvdn.com/t/anonimnye-funkczii-v-javascript/2755/2 "2018-11-07T16:46:51Z")

</div>

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

```
**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. Тоесть анонимная одноразовая и не получает идентефикатора, этим она и отличается от обычной
