Javascript 如何在CoffeScript中传递两个匿名函数作为参数?

Javascript 如何在CoffeScript中传递两个匿名函数作为参数?,javascript,jquery,anonymous-function,coffeescript,Javascript,Jquery,Anonymous Function,Coffeescript,我想传递两个匿名函数作为jQuery悬停的参数,如下所示: $('element').hover( function() { // do stuff on mouseover }, function() { // do stuff on mouseout } ); 只需一个–鼠标悬停->–就很容易了,但是咖啡脚本中适合两个人的语法是什么?我尝试了…hover->,…hover(>..,等等。但是没有任何东西能让我理解上面的结构。在匿名函数周围加上括号。我认为问题

我想传递两个匿名函数作为jQuery悬停的参数,如下所示:

$('element').hover(
  function() {
    // do stuff on mouseover
  },
  function() {
    // do stuff on mouseout
  }
);

只需一个–
鼠标悬停->
–就很容易了,但是咖啡脚本中适合两个人的语法是什么?我尝试了
…hover->
…hover(>..
,等等。但是没有任何东西能让我理解上面的结构。

在匿名函数周围加上括号。

我认为问题在于使用单行注释。
//
。包含在
/*…*/
中的单行注释似乎很好。这里有一个与注释不同的等效示例

$('element').hover(
  -> console.log("first")
  -> console.log("second")
)
或者使用
/*..*/
进行注释

$('element').hover(
  -> /* first */
  -> /* second */
)
您可以在选项卡下尝试这些示例。CoffeeScript添加了一个return语句来返回函数的最后一个表达式。如果您想要不执行任何操作且结尾不包含
return
的基本函数,请尝试:

$('element').hover(
  () ->
  () ->
)
// $('element').hover(function() {}, function() {});

另一种方法是在调用函数后使用反斜杠,逗号应该正确缩进

$('element').hover \
  -> # do stuff on mouseover
  ,
  -> # do stuff on mouseout

不带括号或反斜杠

f ->
  0
, ->
  1
1.7.1的输出:

f(function() {
  return 0;
}, function() {
  return 1;
});

我发誓我做了这件事-我在hover(->)中所指的事-但是我又做了一次,它成功了。谢谢!但是应该注意的是,hover和Paranthesis之间完全没有空格。$(@).hover()!=$(@).hover()否则,输出将被包装在另一组偏执中。此答案中没有足够的信息,Anurag的答案更好地解释了该做什么。谢谢,\n非常好。在长代码行中,我们不需要搜索和查找)。使用\with非常简单。我觉得使用()再次。如果有人无意中发现了这一点:小心不要在这里插入空格:
悬停(
),你将得到额外的括号。命名你的匿名函数。现在就做。你没有合适的名称,所以请叫它们
f
g
f=(…)->,
g=…
。然后
($'element')).hover f,g
。如此简单,如此富有表现力。