Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.05.2017, 12:01
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Использование settimout
Сегодня нужно было отложить выполнение функции на 3 сек. Естественно обратился к setTimeout().

Но меня удивило то что код:
//showWhatsappViberPopup() сработает через 60000 мс

setTimeout(
function(){ 
showWhatsappViberPopup() 
}, 
60000);

//showWhatsappViberPopup() сработает сразу

setTimeout(
showWhatsappViberPopup(), 
60000);


Почему так? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2017, 12:11
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

Сообщение от Duda.Ml1986@gmail.com
setTimeout(
showWhatsappViberPopup(),
60000);
Скобочки после названия пользовательской функции всему виной, т.е. ты передаешь функции «setTimeout» не код функции «showWhatsappViberPopup», а результат её выполнения.

function foo(){return 'bar';}
console.log(foo);//В консоль будет помещен код функции «foo»
console.log(foo());//В консоль будет помещен результат работы функции «foo»


Одинаковый результат будет получен так:
setTimeout(function(){
	showWhatsappViberPopup()
},60000);

setTimeout(showWhatsappViberPopup,60000);
Ответить с цитированием
  #3 (permalink)  
Старый 18.05.2017, 12:22
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Спасибо. Понял.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
использование prototype для создания конструктора обьекта greenrow Общие вопросы Javascript 6 02.06.2016 20:03
JavaScript. Уровень 3в. Серверное программирование на Node.js maxy666 Node.JS 8 10.08.2014 00:36
Использование web камеры freelancer.rnd Общие вопросы Javascript 0 24.07.2014 16:30
FileManager c использование ajax nata031189 Серверные языки и технологии 0 30.03.2012 02:40
Про использование cookies zloctb Общие вопросы Javascript 3 11.02.2012 09:36