Q:

How to parse/understand this coffeescript syntax?

I have come across this construct a few times.
Example 1:
_  = require 'underscore'

class Controller extends App

  _doSomething: _.throttle (event) ->
    $div = $(event.target).closest 'div'
    ...

My Question:
I have trouble understanding why this construct is valid.
Normally a class function definition goes like:
  _doSomething: (event) ->
    $div = $(event.target).closest 'div'
    ...
    , 500

So how can _.throttle sit in between : and (event) the function parameter?
If _.throttle is supposed to act as an wrapper, shouldn't it be written as
  _doSomething = _.throttle( (event) ->   # an anonymous function that takes event as parameter
    $div = $(event.target).closest 'div'
    ...
    , 500

A:

Things might be clearer if we add the optional parentheses:
class Controller extends App
  _doSomething: _.throttle( (event) ->
    $div = $(event.target).closest 'div'
    ...
  )

Now we see that _.throttle is function call and it is being given an anonymous function as its single argument. We can break it down a bit more to further clarify what's going on:
f = (event) ->
  $div = $(event.target).closest('div')
  ...
throttled_function = _.throttle(f)

class Controller extends App
  _doSomething: throttled_function

_.throttle returns a function so the code you're looking at just just a complicated version of:
class Controller extends App
  _doSomething: some_function

which is nothing special. Keep in mind that you can use anonymous functions when building a class's methods but named functions or other expressions which evaluate to functions serve just as well; the syntax is really:
name: expr

where expr is some expression and f(x) (or _.throttle(some_anonymous_function)) is an expression.

