请告诉我如何在coffeescript写javascript下面。

setTimeout(function(){
    something(param);
}, 1000);

当前回答

setTimeout ( ->
  something param
), 1000

括号是可选的,但在我看来,以逗号开头的行有点乱。

其他回答

我觉得这是做同样事情的最好方法,

setTimeout (-> alert "hi"), 1000

另一个选择:

setTimeout(
    -> something param
    1000
)
setTimeout -> 
  something param
, 1000

我认为将回调函数作为函数的最后一个参数是一个有用的约定。例如,Node.js API通常就是这种情况。记住这一点:

delay = (ms, func) -> setTimeout func, ms

delay 1000, -> something param

当然,这将为您执行的每个setTimeout增加额外函数调用的开销;但在今天的JS解释器中,性能上的缺陷是微不足道的,除非你每秒做几千次。(你为什么要每秒设置数千个超时?)

当然,一个更直接的方法是简单地命名你的回调,这往往会产生更可读的代码(jashkenas是这个习语的忠实粉丝):

callback = -> something param
setTimeout callback, 1000
setTimeout ( ->
  something param
), 1000

括号是可选的,但在我看来,以逗号开头的行有点乱。