How to pass two anonymous functions as arguments in CoffeScript?

I want to pass two anonymous functions as arguments for jQuery's hover, like so:

  function() {
    // do stuff on mouseover
  function() {
    // do stuff on mouseout

It's easy with just one – hover -> – but what is the proper syntax in CoffeeScript for two? I tried ...hover ->, ...hover( ->..., etc. but nothing gets me the above structure.


Put parentheses around the anonymous functions.

I think the problem lies with using single line comments //. Single-line comments enclosed in /* .. */ seem to work fine. Here's an equivalent example with something other than a comment.

  -> console.log("first")
  -> console.log("second")

Or with comments using /* .. */.

  -> /* first */
  -> /* second */

You can try these examples under the Try CoffeeScript tab. CoffeeScript adds a return statement to return the last expression of the function. If you wanted bare-bones functions which do nothing and don't contain a return at the end, try:

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

Another way is to use backslash after the caller function, the comma should be indented correctly.

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

Without parenthesis or backslash:

f ->
, ->

Output on 1.7.1:

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

Need Your Help

Docker Networking - nginx: [emerg] host not found in upstream

nginx docker docker-compose docker-networking

I have recently started migrating to Docker 1.9 and Docker-Compose 1.5's networking features to replace using links.

jQuery $.ajax(), pass success data into separate function

javascript jquery ajax callback

I am using the jQuery $.ajax() function. I have put this into a parent function, which passes some values into the ajax function. What I would like to do, is have a user defined callback function,