Вопрос по уроку "Таймеры: "setTimeout" и "setInterval".
Вот
здесь автор пишет, что "
по умолчанию, setTimeout не передаёт функции никаких аргументов". И приводит пример:
function sayHi(who) {
alert("Привет, я " + who);
}
setTimeout(sayHi, 1000); // Привет, я undefined
Все вроде правильно, не передает. Потому что ничего и не передавалось.
Потом он пишет такое: "
Для того, чтобы аргументы передать, обёртывают вызов в анонимную функцию:"
function sayHi(who) {
alert("Привет, я " + who);
}
setTimeout(function() { sayHi('Вася') }, 1000); // Привет, я Вася
Да, так передает. Но он прекрасно передает и так:
function sayHi(who) {
alert("Привет, я " + who);
}
setTimeout(sayHi("Вася"), 1000); // Привет, я Вася
То есть очевидно, что по умолчанию setTimeout преспокойно
может передавать функции аргументы.
Вопрос. Зачем автор пишет, что setTimeout не может? Или здесь есть какие особенные различия между 2м и 3м примером?