Я думаю, что это полезное соглашение о том, что обратные вызовы являются последним аргументом функции. Обычно это относится к API Node.js, например. Итак, имея в виду:
Конечно, это добавляет накладные расходы на дополнительный вызов функции для каждого setTimeout, который вы делаете; но в современных интерпретаторах JS недостаток производительности незначителен, если вы не делаете это тысячи раз в секунду. (И что вы делаете, устанавливая тысячи тайм-аутов в секунду, во всяком случае?)
Конечно, более простой подход состоит в том, чтобы просто назвать ваш обратный вызов, который в любом случае приводит к созданию более читаемого кода (jashkenas - большой поклонник этой идиомы):
Скобки являются необязательными, но начало строки с запятой показалось мне бесполезным.
Ответ 3
setTimeout ->
something param
, 1000
Ответ 4
Это приведет к примерно эквивалентному переводу (спасибо @Joel Mueller):
setTimeout (-> something param), 1000
Обратите внимание, что это не точный перевод, потому что анонимная функция возвращает результат вызова something(param) вместо undefined, как в вашем фрагменте.
Ответ 5
Я считаю, что это лучший способ сделать то же самое,