Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2017, 09:59
Аватар для 4aki
Новичок на форуме
Отправить личное сообщение для 4aki Посмотреть профиль Найти все сообщения от 4aki
 
Регистрация: 23.08.2017
Сообщений: 6

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

если я напишу так : setTimeout(ups(),5000) - тогда функция сразу сработает, но если напишу так: setTimeout(ups,5000), то тогда она срабатывает из задержкой(как и должно быть)
Вопрос:
почему нельзя указывать СКОБКИ ФУНКЦИИ для функции setTimeout, не могу понять этот момент, друзья, подскажите пожалуйста!)
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2017, 10:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от 4aki
почему нельзя указывать СКОБКИ ФУНКЦИИ для функции setTimeout, не могу понять этот момент
Ты путаешь вызов функции
Сообщение от 4aki
ups()
С передачей ссылки на нее
Сообщение от 4aki
setTimeout(ups,5000)
Для setTimeout() нужно передать ссылку на функцию. Но ссылка может выглядеть и так

function ups(){
        return function(){alert("ups");};
}
setTimeout(ups(),1000)
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2017, 10:13
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от ksa
Но ссылка может выглядеть и так
Изврат какой-то.
Вызвать функцию, чтобы получить функцию.
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2017, 10:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

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

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

Например в Ангуларе валом таких приемов... А то даже и покруче!
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2017, 11:10
Аватар для 4aki
Новичок на форуме
Отправить личное сообщение для 4aki Посмотреть профиль Найти все сообщения от 4aki
 
Регистрация: 23.08.2017
Сообщений: 6

ksa,
спасибо большое за прекрасный ответ))буду знать это, благодаря Вам!)
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2017, 11:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от 4aki
буду знать это, благодаря Вам!
Ты бы книжки какие по JS почитал... Тогда и не такое узнаешь.
Ответить с цитированием
  #7 (permalink)  
Старый 23.08.2017, 11:33
Аватар для 4aki
Новичок на форуме
Отправить личное сообщение для 4aki Посмотреть профиль Найти все сообщения от 4aki
 
Регистрация: 23.08.2017
Сообщений: 6

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

но мне этот вариант не очень по душе, я использую без переменной.
Но увы, там ничего не было про ссылки и вызовы функций.
У меня в плане перейти к книге - javascript: Подробное руководство (Definitive Guide).Возможно, можна услышать от Вас какие то рекомендации, книги, ютюб-канали для начинающего в js?
Ответить с цитированием
  #8 (permalink)  
Старый 23.08.2017, 11:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

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

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

Тут Учебник вроде не плох...
https://learn.javascript.ru
Ответить с цитированием
  #9 (permalink)  
Старый 23.08.2017, 11:57
Аватар для 4aki
Новичок на форуме
Отправить личное сообщение для 4aki Посмотреть профиль Найти все сообщения от 4aki
 
Регистрация: 23.08.2017
Сообщений: 6

ksa,
спасибо, буду пользоваться)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Angular2+: Почему нельзя обойтись без dependency injection? Shitbox2 Angular.js 12 27.07.2017 14:53
почему нельзя нажать на див и получить алерт? imedia Элементы интерфейса 2 09.02.2015 14:23
почему нельзя объявить переменную и в ней использовать совмещенные операторы?!! alexben Общие вопросы Javascript 23 13.02.2012 01:32
setTimeout внутренней функции maxtor jQuery 6 29.11.2011 19:59
setTimeout и setInterval срабатывают без задержки! ПОЧЕМУ? shureg Общие вопросы Javascript 1 12.05.2011 09:06