请告诉我如何在coffeescript写javascript下面。
setTimeout(function(){
something(param);
}, 1000);
请告诉我如何在coffeescript写javascript下面。
setTimeout(function(){
something(param);
}, 1000);
当前回答
这将导致大致相同的翻译(感谢@Joel Mueller):
setTimeout (-> something param), 1000
注意,这并不是一个精确的翻译,因为匿名函数返回的是调用某个参数(param)的结果,而不是像代码片段中那样调用undefined。
其他回答
这将导致大致相同的翻译(感谢@Joel Mueller):
setTimeout (-> something param), 1000
注意,这并不是一个精确的翻译,因为匿名函数返回的是调用某个参数(param)的结果,而不是像代码片段中那样调用undefined。
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
另一个选择:
setTimeout(
-> something param
1000
)