обратные вызовы содержат ссылку на функцию.

уйста, игнорируйте тот факт, что этот код ничего не дает и приносит извинения за то, что, вероятно, глупый вопрос!

Я понимаю, что не могу передать вызов функции вsetTimeout() в качестве первого аргумента, ноЗачем я не могу этого сделать?

let names = ['Andy', 'Ross', 'David'];

function printer (name) {
 console.log(name);
}

names.forEach(name => setTimeout(printer(name), 1000);

Результат:

Andy
timers.js:327
    throw new TypeError('"callback" argument must be a function');
    ^

Я могу решить проблему, используя вместо этого ссылку наprinter и используяbind() отправлятьname наряду с этим, но почему я должен предпринять эти дополнительные шаги?

let names = ['Andy', 'Ross', 'David'];

function printer (name) {
  console.log(name);
}

names.forEach(name => setTimeout(printer.bind(null, name), 1000));

Результат:

Andy
Ross
David

Ответы на вопрос(5)

Ваш ответ на вопрос