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