Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   почему нельзя указывать скобки в функции setTimeout() (https://javascript.ru/forum/css-html/70258-pochemu-nelzya-ukazyvat-skobki-v-funkcii-settimeout.html)

4aki 23.08.2017 09:59

почему нельзя указывать скобки в функции setTimeout()
 
допустим у меня есть код:
function ups(){
        alert("ups");
    }
    setTimeout(ups,5000)

если я напишу так : setTimeout(ups(),5000) - тогда функция сразу сработает, но если напишу так: setTimeout(ups,5000), то тогда она срабатывает из задержкой(как и должно быть)
Вопрос:
почему нельзя указывать СКОБКИ ФУНКЦИИ для функции setTimeout, не могу понять этот момент, друзья, подскажите пожалуйста!)

ksa 23.08.2017 10:10

Цитата:

Сообщение от 4aki
почему нельзя указывать СКОБКИ ФУНКЦИИ для функции setTimeout, не могу понять этот момент

Ты путаешь вызов функции
Цитата:

Сообщение от 4aki
ups()

С передачей ссылки на нее
Цитата:

Сообщение от 4aki
setTimeout(ups,5000)

Для setTimeout() нужно передать ссылку на функцию. Но ссылка может выглядеть и так

function ups(){
        return function(){alert("ups");};
}
setTimeout(ups(),1000)

Nexus 23.08.2017 10:13

Цитата:

Сообщение от ksa
Но ссылка может выглядеть и так

Изврат какой-то.
Вызвать функцию, чтобы получить функцию.

ksa 23.08.2017 10:30

Цитата:

Сообщение от Nexus
Изврат какой-то.

Отнють. :D

Цитата:

Сообщение от Nexus
Вызвать функцию, чтобы получить функцию.

Именно так. :yes:

Например в Ангуларе валом таких приемов... А то даже и покруче! :D

4aki 23.08.2017 11:10

ksa,
спасибо большое за прекрасный ответ))буду знать это, благодаря Вам!)

ksa 23.08.2017 11:12

Цитата:

Сообщение от 4aki
буду знать это, благодаря Вам!

Ты бы книжки какие по JS почитал... Тогда и не такое узнаешь. ;)

4aki 23.08.2017 11:33

ksa,
в том то дело, что я читаю книгу, но там везде функцию присваивают переменной и потом используют:
var doHomeworkAlarm = function () {
alert("Эй! Пора делать домашку!");
};

но мне этот вариант не очень по душе, я использую без переменной.
Но увы, там ничего не было про ссылки и вызовы функций.
У меня в плане перейти к книге - javascript: Подробное руководство (Definitive Guide).Возможно, можна услышать от Вас какие то рекомендации, книги, ютюб-канали для начинающего в js?

ksa 23.08.2017 11:52

Цитата:

Сообщение от 4aki
но мне этот вариант не очень по душе, я использую без переменной

Значит ты еще не проникся таким понятием как "область видимости"... ;)

Цитата:

Сообщение от 4aki
рекомендации, книги, ютюб-канали для начинающего в js?

Для начинающего любая книжка уже будет подспорьем... Есть отличные серии книг:
- Для чайников
- За 24 часа

Тут Учебник вроде не плох...
https://learn.javascript.ru

4aki 23.08.2017 11:57

ksa,
спасибо, буду пользоваться)


Часовой пояс GMT +3, время: 11:33.