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

glo*_*tho 55 javascript jquery anonymous-function coffeescript

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

$('element').hover(
  function() {
    // do stuff on mouseover
  },
  function() {
    // do stuff on mouseout
  }
);
Run Code Online (Sandbox Code Playgroud)

只用一个就很容易hover ->- 但是CoffeeScript中的两个正确语法是什么?我试过...hover ->,...hover( ->...等等,但没有任何东西让我得到上述结构.

Anu*_*rag 52

我认为问题在于使用单行评论//.附上的单行注释/* .. */似乎工作正常.这是一个与评论不同的例子.

$('element').hover(
  -> console.log("first")
  -> console.log("second")
)
Run Code Online (Sandbox Code Playgroud)

或者使用评论/* .. */.

$('element').hover(
  -> /* first */
  -> /* second */
)
Run Code Online (Sandbox Code Playgroud)

您可以在Try CoffeeScript选项卡下尝试这些示例.CoffeeScript添加一个return语句来返回函数的最后一个表达式.如果您希望裸机功能无效return且最后不包含a ,请尝试:

$('element').hover(
  () ->
  () ->
)
// $('element').hover(function() {}, function() {});
Run Code Online (Sandbox Code Playgroud)


Joe*_*eng 24

将括号括在匿名函数周围.


小智 21

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

$('element').hover \
  -> # do stuff on mouseover
  ,
  -> # do stuff on mouseout
Run Code Online (Sandbox Code Playgroud)


Cir*_*四事件 8

没有括号或反斜杠:

f ->
  0
, ->
  1
Run Code Online (Sandbox Code Playgroud)

1.7.1的输出:

f(function() {
  return 0;
}, function() {
  return 1;
});
Run Code Online (Sandbox Code Playgroud)