请告诉我下面如何在coffeescript中编写javascript。
setTimeout(function(){
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
The parentheses are optional, but starting the line with a comma seemed messy to me.
setTimeout ->
something param
, 1000
这将导致大致等效的翻译(感谢@Joel Mueller):
setTimeout (-> something param), 1000
请注意,这不是确切的翻译,因为匿名函数返回调用的结果,something(param)
而不是如代码片段中的undefined。
我发现这是最好的方法,
setTimeout (-> alert "hi"), 1000
另外一个选择:
setTimeout(
-> something param
1000
)
本文地址:http://javascript.askforanswer.com/ruhetongguocoffeescriptyongcanshubianxiesettimeout.html
文章标签:coffeescript , javascript , settimeout
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:coffeescript , javascript , settimeout
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!