Попадает ли данный вызов setTimeout(func(), delay) в Browser API и Callback queue?
Известно, что setTimeout(func, delay) ждет функцию, а не результат ее выполнения и так писать плохо– setTimeout(func(), delay). Тем не менее, этот код выполниться (разумеется, без задержки). Вопрос такой. Попадет ли при этом setTimeout(func(), delay) в Browser API и затем в Callback queue или func() выполниться сразу в Сall stack?
Ничего не мешает func() возвратить функцию, которая выполнится по наступлению таймаута.
И чем, по вашему, setTimeout отличается от любых других функций, типа console.log(func())?
Mikhail Brazhnik, Вообще нет разницы. консоль выведет результат функции, таймаут вызовет результат функции. Поведение, связанное с передачей параметра вообще одинаковое. Достаточно немного модифицировать пример:
Результат выполнения, естественно, разный - это же разные функции.
Mikhail Brazhnik, нет, в обоих случаях функция выполнится сразу (причем еще до вызова console.log и setTtimeout), а затем результат уже будет передан в соответствующий метод. Различия нет.