如何通过Coffeescript用参数编写setTimeout

2020/10/15 18:41 · javascript ·  · 0评论

请告诉我下面如何在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
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!